题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4474
解题过程中各种错误啊~~~
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <list>
#include <deque>
#include <queue>
#include <iterator>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
#include <cctype>
using namespace std;
typedef __int64 LL;
const int N=100005;
const LL II=1000000007;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);
int n,kk,m;
int t[11],p[11];
int vis[10100];
struct xh
{
int mod;
string s;
}w,e;
void bfs()
{
int i,j;
memset(vis,0,sizeof(vis));
queue<xh> q;
w.mod=0;
w.s="";
q.push(w);
while(!q.empty())
{
e=q.front();
q.pop();
for(i=0;i<kk;i++)
{
w=e;
int x=w.mod*10+t[i];
if(x==0) continue;
x=x%n;
if(vis[x]==0)
{
vis[x]=1;
w.mod=x;
w.s+=(t[i]+'0');
if(x==0)
{
cout<<w.s<<endl;
return ;
}
q.push(w);
}
}
}
puts("-1");
}
int main()
{
int ca=0,i;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(p,0,sizeof(p));
for(i=0;i<m;i++)
{
int a;
scanf("%d",&a);
p[a]=1;
}
kk=0;
for(i=0;i<10;i++)
if(p[i]==0)
t[kk++]=i;
printf("Case %d: ",++ca);
bfs();
}
return 0;
}