P1037 [NOIP2002 普及组] 产生数80分求调
查看原帖
P1037 [NOIP2002 普及组] 产生数80分求调
1126200
noWAnoWA楼主2024/7/25 17:51
#include<iostream>
#include<cstring>
using namespace std;
unsigned long long a[30],b[10][10],v[10];
int dfs(int x){
	unsigned long long w=0,ans=0;
	for(unsigned long long y=0;y<10;y++){
		if(b[x][y]&&!v[y]){
			v[y]=1;
			ans++;
			ans+=dfs(y);
		}
	}
	return ans;
}
int main(){
	string s;
	unsigned long long ans=1;
	int k,x,y;
	cin>>s>>k;
	for(unsigned long long i=0;i<10;i++) b[i][i]=1;
	while(k--){
		cin>>x>>y;
		b[x][y]=1;
	}
	for(unsigned long long i=0;i<s.length();i++){
		a[i]=s[i]-'0';
		memset(v,0,sizeof(v));
		ans*=dfs(a[i]);
	}
	cout<<ans;
	return 0;
}
2024/7/25 17:51
加载中...