#5WA80分求助!
查看原帖
#5WA80分求助!
1286853
zy_1_2_1_5楼主2024/9/5 14:22
#include<bits/stdc++.h>
using namespace std;
string n;
int k,a[20],b[20];
bool vis[15];
long long ans=1,sum=0;
void dfs(int x){
//	cout<<'\n'<<vis[x]<<'\n';
	if(vis[x]==1) return;
	vis[x]=1;
	for(int i=1;i<=k;i++){
		if(a[i]==x && vis[b[i]]==0){
			sum++;
//			cout<<x<<' '<<b[i]<<' '<<num<<' '<<sum<<'\n';
			dfs(b[i]);
		}
	}
}
int main(){
	cin>>n;
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>a[i]>>b[i];
	}
	int len=n.size();
	for(int i=1;i<=len;i++){
		sum=0;
		memset(vis,0,sizeof(vis));
		dfs(n[i-1]-'0');
		ans*=(sum+1);
	}
	cout<<ans;
	return 0;
}
2024/9/5 14:22
加载中...