poj 1465 Multiple 静态节点+余数判重+非STL队列的广搜

来源:互联网 发布:淘宝流量接单任务平台 编辑:程序博客网 时间:2024/05/01 23:09
//poj 1465//sep9#include <iostream>#include <algorithm>using namespace std;int n,m,p;int num[16],vis[8192];struct NODE{int dig,r,pre; }Q[8192];void print(int x){if(x!=-1){print(Q[x].pre);printf("%d",Q[x].dig);}}void bfs(){int l=0,r=0;memset(vis,0,sizeof(vis));for(int i=1;i<=m;++i){if(num[i]==0) continue;NODE p;p.dig=num[i];p.pre=-1;p.r=num[i]%n;Q[r++]=p;}while(l<r){NODE now=Q[l];if(now.r==0){print(l);puts("");return;}for(int i=1;i<=m;++i){NODE nxt;nxt.dig=num[i],nxt.r=(10*now.r+num[i])%n,nxt.pre=l;if(!vis[nxt.r]){Q[r++]=nxt;vis[nxt.r]=1;}}l++;}puts("0");}int main(){while(scanf("%d",&n)==1){scanf("%d",&m);for(int i=1;i<=m;++i)scanf("%d",&num[i]);sort(num+1,num+1+m);if(n==0){puts("0");continue;}bfs();}return 0;}

0 0
原创粉丝点击