poj 1426 数字广搜

提交了N次,终于过了,原来是忘记N = 0时终止了;

 

真心给跪了,

看了很多大神写的代码,感觉不怎么好理解,

自己写了一个就是间的广搜 注意剪枝,余数相同时就不再判断了

16ms

#include<iostream>
#include<queue>
using namespace std;

queue<long long >vi;
long long head;
long long vis[500],N;
void bfs()
{
int k = 1;
vi.push(k);
while(!vi.empty())
{
head = vi.front();
vi.pop();
if(head % N == 0)
//return head;
break;

if(!vis[head %N ])
{
vi.push(head*10);
vi.push(head*10+1);
}
vis[head%N]=1;

}
}
int main()
{
while(cin>>N)
{
memset(vis,0,sizeof(vis));
while(!vi.empty())
vi.pop();
bfs();
cout<<head<<endl;
}
}

posted on 2012-12-03 21:47  元点之始  阅读(151)  评论(0编辑  收藏  举报

导航