POJ 1465 Multiple(BFS+同于定理+打印路径)
2015-10-13 22:06
453 查看
BFS+同于定理。(看了解题报告才会的),这题实在太巧妙
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; const int maxm=1e4+10; int vis[maxm]; int d[maxm]; int m,n; int ok; struct node { int pre; int yu; int dig; }queue[maxm]; void output(node t) { if(t.pre!=-1) { output(queue[t.pre]); printf("%d",t.dig); } return; } void bfs() { queue[0].pre=-1; queue[0].yu=0; queue[0].dig=0; int e=0,h=1; while(e<h) { node now=queue[e]; node t; for(int i=0;i<n;i++) { int r=(now.yu*10+d[i])%m; if((now.pre!=-1||d[i]>0)&&!vis[r]) { vis[r]=1; t.dig=d[i]; t.yu=r; t.pre=e; queue[h++]=t; if(r==0) { ok=1; output(t); printf("\n"); break; } } } if(ok) { break; } e++; } if(!ok) { printf("0\n"); } return; } int main() { while(scanf("%d%d",&m,&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%d",&d[i]); } sort(d,d+n); memset(vis,0,sizeof(vis)); ok=0; if(m==0) { printf("0\n"); continue; } bfs(); } return 0; }
相关文章推荐
- selinux--rhel5
- AOP (面向切面编程)
- HDU 2102 A计划 (BFS)
- LEETCODE-Nim Game(博弈论,Bush Game )
- Linux Kernel系列三:Kernel编译和链接中的linker script语法详解
- 【黑马程序员】【Foundation框架】NSNumber、NSValue和NSData
- static与const小结
- leetcode292——Nim Game
- 在App中添加微信分享功能
- Struts漏洞分析与研究
- 如何更好地使用word(1)
- Eclipse UML 插件: ObjectAid UML Explorer
- Linux用户及权限详解
- codeforces586C Gennady the Dentist(模拟)
- web测试方法总结
- Adaboost训练过程的详解
- 【Android】error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'.
- request.getParameter和getAttribute
- KMP字符串匹配算法
- 运维屌丝回答网传Linux运维面试题(一)