POJ 1426 Find The Multiple bfs
来源:互联网 发布:电脑必备软件 知乎 编辑:程序博客网 时间:2024/05/22 04:46
来源:http://poj.org/problem?id=1426
题意:给你一个数n,让求一个只有0和1组成的十进制数x,x是n的倍数。
思路:bfs,因为只有0和1组成,所以最高位肯定是1,从1开始搜即可。搜索的过程中,若x%n已经出现过了,则不在入队。输出最先搜到的一个即可。
代码:
#include <iostream>#include <cstdio>#include <string.h>#include <queue>using namespace std;#define CLR(arr,val) memset(arr,val,sizeof(arr))typedef long long LL;int flag[210];LL bfs(int n){CLR(flag,0); queue<LL> qq;qq.push(1);flag[1%n] = 1;while(!qq.empty()){LL x = qq.front();if(x % n == 0)return x;qq.pop();LL y = x * 10;int yy = y % n;LL z = x * 10 + 1;int zz = z % n;if(!flag[yy]){ qq.push(y); flag[yy] = 1;}if(!flag[zz]){ qq.push(z); flag[zz] = 1;}}}int main(){//freopen("1.txt","r",stdin);int n;while(scanf("%d",&n) &&n){ LL ans = bfs(n); printf("%lld\n",ans);}return 0;}
- POJ 1426 Find The Multiple bfs
- poj 1426 Find The Multiple(bfs)
- Find The Multiple (poj 1426 bfs)
- poj 1426 Find The Multiple(bfs)
- POJ 1426-Find The Multiple(bfs)
- POJ 1426 Find The Multiple(BFS)
- poj - 1426-Find The Multiple-BFS
- [Poj 1426] Find The Multiple BFS
- POJ-1426-Find The Multiple【BFS】
- POJ 1426 Find The Multiple (BFS)
- POJ 1426 Find The Multiple【BFS】
- POJ 1426 Find The Multiple (bfs)
- POJ 1426 BFS-Find The Multiple
- poj 1426 Find The Multiple (bfs / dfs)
- Find The Multiple poj 1426 bfs
- poj 1426 Find The Multiple(bfs)
- POJ-1426 Find The Multiple ( BFS )
- POJ 1426 Find The Multiple (BFS)
- 编程之美4.2 扩展
- 增强现实现在越来越贴近现实
- sql2005的存储过程
- QNX驱动开发——Resource manger framework
- 不同服务器数据库之间的数据操作
- POJ 1426 Find The Multiple bfs
- 谈谈mobile web以及浏览器的单/多进程
- Delphi GUI程序中使用控制台
- HDU-4107-Gangster
- WinForm 关于窗口从中间逐渐变大
- html树形菜单控件
- 约束与数据库对象规则、默认值的探究
- JavaScript世界的一等公民 - 函数
- Effective C++之继承和面向对象设计