HDU 4474 BFS
2012-12-03 20:06
295 查看
简单BFS + 大数取模的应用
因为n最大10000 暴搜一遍即可
因为n最大10000 暴搜一遍即可
#include<cstdio> #include<cstring> #include<queue> #include<stack> using namespace std; const int MAXN = 10007; struct node { int v,m,pre; void init(int tv,int tm,int tpre) { v = tv, m = tm, pre = tpre; } }e[MAXN]; bool exist[MAXN]; bool enable[10]; int main() { int n,m,id=0; while(~scanf("%d%d",&n,&m)) { memset(enable,0,sizeof(enable)); int i,x; for(i=0;i<m;i++) { scanf("%d",&x); enable[x] = true; } printf("Case %d: ",++id); memset(exist,0,sizeof(exist)); bool bans = false; int ent=0; queue<int> q; e[ent].init(0,0,-1); q.push(ent ++); while(!q.empty()) { int u=q.front(); q.pop(); for(i=0;i<10;i++) { if( !enable[i] ) { if(e[u].pre == -1 && i == 0) { continue; } int tm = (e[u].m * 10 + i ) % n; if(tm == 0) { stack<int> answer; answer.push(i); while( e[u].pre != -1) { answer.push(e[u].v); u = e[u].pre; } while(!answer.empty()) { putchar('0' + answer.top()); answer.pop(); } puts(""); bans = true; break; } if( !exist[tm] ) { e[ent].init(i,tm,u); q.push(ent ++); exist[tm] = true; } } } if(bans) { break; } } if(!bans) { puts("-1"); } } return 0; }
相关文章推荐
- hdu 4474 Yet Another Multiple Problem(BFS)
- hdu 4474 Yet Another Multiple Problem(BFS)
- hdu 4474 Yet Another Multiple Problem 模型转换 BFS搜索 根据剩余类建图广搜
- 一类数位限制倍数的BFS问题...URAL 1495,POJ 1465,HDU 4474,HDU 1226
- hdu 4474 Yet Another Multiple Problem 模型转换 BFS搜索
- hdu 4474 Yet Another Multiple Problem bfs
- hdu 4474 搜索bfs
- hdu 4474 数位搜索bfs
- HDU-#4474 Yet Another Multiple Problem(BFS)
- HDU 4474 Yet Another Multiple Problem【BFS+一个判断技巧】
- HDU 4474 Yet Another Multiple Problem(12年成都区域赛-K题-BFS)
- hdu 4474 bfs
- HDU 4474 Yet Another Multiple Problem【2012成都regional K题】 【BFS+一个判断技巧】
- hdu 4474 bfs
- hdu 4474 Yet Another Multiple Problem (bfs)
- hdu 4474 Yet Another Multiple Problem ( bfs + math)
- hdu 4474 数位BFS
- 2012 Asia Chengdu Regional Contest hdu 4474(数位bfs)
- HDU 4474 Yet Another Multiple Problem(搜索 BFS)
- HDU 4474 Yet Another Multiple Problem bfs枚举所有余数