AC#1RE#2#3#4#5求助
查看原帖
AC#1RE#2#3#4#5求助
583916
tjer楼主2022/3/26 16:07

this is wrong code

#include<bits/stdc++.h>
using namespace std;
long long n,ans,k;
queue<long long> q,a,b;
bool vis[100001]; 
void bfs(){
	ans++;
	vis[n]=1;
	q.push(n);
	while(!q.empty()){
		long long x=q.front(),y=q.front(),sb=1;
        q.pop();
		while(x>0){
			long long xx=x%10;x/=10;
			for(long long i=1;i<=k;i++){
				long long yy=y+(b.front()-a.front())*sb;
				if(xx==a.front()&&vis[yy]==0){
					vis[yy]=1;
					ans++;
					q.push(yy);
				}
                b.push(b.front());
                b.pop();
                a.push(a.front());
                a.pop();
			}
			sb*=10;
		}
	}
}
int main(){
	scanf("%lld%lld",&n,&k);
	for(long long i=1;i<=k;i++){
        long long x,y;
        scanf("%lld%lld",&x,&y);
        a.push(x);
        b.push(y);
    }
    bfs();
    printf("%lld",ans);
    return 0;
} 

2022/3/26 16:07
加载中...