今天很无聊啊,所以做一道发一道..
今天第一次尝试了几次队列模板,用着很爽啊~~
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int M=20;
int n,k,a[M],b[M];
bool flag[100005];
queue<int> q;
int ans;
void bfs()
{
ans++;
flag[n]=1;
q.push(n);
while(!q.empty()){
int x=q.front(),y=q.front(),mod=1;
q.pop();
while(x>0){
int xx=x%10;x/=10;
for(int i=1;i<=k;i++){
int yy=y+(b[i]-a[i])*mod;
if(xx==a[i]&&!flag[yy]){
flag[yy]=1;
ans++;
q.push(yy);
}
}
mod*=10;
}
}
}
int main()
{
cin>>n>>k;
for(int i=1;i<=k;i++)
scanf("%d%d",&a[i],&b[i]);
bfs();
printf("%d",ans);
return 0;
}
继续努力。