POJ 1426(BFS)

来源:互联网 发布:生存类网络联机游戏 编辑:程序博客网 时间:2024/05/13 05:30

题目链接:http://poj.org/problem?id=1426

题意:给出一个n,找出n的倍数m,且m由01序列组成,任意输出一个即可。

思路:广搜或深搜吧,要不是这道题在搜索系列里面,估计我就直接枚举了。

另外,mark一下:有时候C++过不去试一下G++,不知道为何莫名TLE了好几发...

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>using namespace std;const int INF=0x3f3f3f3f;const int maxn=1000010;typedef __int64 LL;LL n;void Bfs(){queue<LL>q;while(!q.empty()) q.pop();q.push(1);while(1){LL s=q.front();q.pop();if(s%n==0){printf("%lld\n",s);return ;}q.push(s*10);q.push(s*10+1);}}int main(){#ifndef ONLINE_JUDGEfreopen("test.in","r",stdin);freopen("test.out","w",stdout);#endifwhile(~scanf("%lld",&n)&&n){Bfs();}return 0;}


0 0
原创粉丝点击