POJ-1465-Multiple
来源:互联网 发布:辛辛那提音乐学院知乎 编辑:程序博客网 时间:2024/06/06 09:26
这个题仍然是BFS搜索题,其题目的测试数据可能很大(最开始用long long 都过不了),所以采用比较巧妙的链式方法(参考了下网上其他人的做法),最后AC~受教了!
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=100001;struct node{ int val; int res; int pre;}q[maxn];int n,m,num[11];bool vis[5000];void Output(int index){ if(q[index].pre==-1)return; Output(q[index].pre); printf("%d",q[index].val);}int main(){ while(scanf("%d",&n)!=EOF) {memset(vis,0,sizeof(vis));scanf("%d",&m);for(int i=0;i<m;i++) scanf("%d",&num[i]);if(n==0){ printf("0\n"); continue;}sort(num,num+m);int pre=0,last=0;q[last].val=0;q[last].res=0;q[last++].pre=-1;int ans=-1;while(pre<last){ for(int i=0;i<m;i++) {q[last].res=q[pre].res*10+num[i];q[last].pre=pre;q[last].val=num[i];int res=q[last].res%n;if(q[last].res&&!res){ ans=last; break;}if(vis[res]) continue;q[last].res=res;vis[res]=1;last++; } pre++; if(ans!=-1)break;}if(ans==-1) printf("0\n");else{ Output(ans); printf("\n");} } return 0;}
- POJ 1465 Multiple
- POJ 1465 Multiple BFS
- POJ-1465-Multiple
- poj 1465 Multiple (BFS)
- POJ 1465 Multiple
- POJ 1465 Multiple
- POJ-1465 Multiple
- poj 1465 Multiple
- POJ 1465 Multiple
- POJ 1465 Multiple
- POJ-1465 Multiple
- poj 1465 Multiple
- Chapter05-Multiple(POJ 1465)
- POJ 1465 Multiple BFS + 余数判重
- poj 1465 Multiple (bfs+取余判重)
- POJ 1465 Multiple (广搜,哈希判重)
- POJ:1465 Multiple(bfs+剪枝)
- POJ 1465 Multiple(BFS+同余剪枝)
- Internet安全选项注册表
- 解决jQuery别名跟别的库冲突(改变$符号)
- ios中同时录音和播放
- Android里Service的bindService()和startService()混合使用深入分析
- Linux的时间函数(2)
- POJ-1465-Multiple
- Android应用之Activity传参数与跳转
- linux常用命令
- 【Node.js】环境配置及调试方法
- Oracle同义词创建及其作用
- Eclipse 安装Maven插件
- java学习之路
- B Have a Nice Day
- 深度解析Android Activity初探