http://ybt.ssoier.cn:8088/
#include<iostream> #include<cstdio> using namespace std; #define MAXN 10001 #define MAXM 16 int k,n; int est[MAXN]; int que[MAXN]; int a[MAXM],b[MAXM]; int main() { scanf("%d",&n); scanf("%d",&k); for(int i=1;i<=k;i++) scanf("%d%d",&a[i],&b[i]); est[n]=1; que[1]=n; int head=1; for(int tail=0;head>=tail;) { int x=que[++tail]; int y=x,mod=1; while(x>0) { int tmp=x%10; x=x/10; for(int i=1;i<=k;i++) if(a[i]==tmp) { int p=y+(b[i]-tmp)*mod; if(est[p]==0) { est[p]=1; que[++head]=p; } } mod=mod*10; } } printf("%d ",head); return 0; }