标签:cstring bfs highlight ++ name ace spfa ios ++i
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1000+10;
int k,m,from[maxn],d[maxn];
int zz[maxn];
bool vis[maxn];
void bfs() {
int s=1,t=0,x,y;
for(int i=1;i<=k&&!vis[0];++i) if(!vis[i%m]){
d[i%m]=i%m,zz[++t]=i%m,vis[i%m]=1;
}
while(s<=t&&!vis[0]) {
x=zz[s++];y=x*10%m;
for(int i=0;i<=k&&!vis[0];++i) {
y=(x*10%m+i)%m;
if(vis[y]) continue;
vis[y]=1;
from[y]=x;
d[y]=i;
zz[++t]=y;
}
}
t=0;zz[++t]=d[0];
for(int i=from[0];i;i=from[i]) zz[++t]=d[i];
while(t) printf("%d",zz[t--]);
}
int main() {
scanf("%d%d",&k,&m);k--;
bfs();
return 0;
}
标签:cstring bfs highlight ++ name ace spfa ios ++i
原文地址:http://www.cnblogs.com/Serene-shixinyi/p/7630578.html