80pts求助(第5个测试点WA)
查看原帖
80pts求助(第5个测试点WA)
939574
Eric_Berlin_NOI楼主2024/7/26 08:31
#include <bits/stdc++.h>
#define int long long
using namespace std;
char a[39],k,x[19],y[19];
bool b[99];
int len,t,s;
void print(int x){
	if(x>9) print(x/10);
	putchar(x%10+48);
}
void dfs(char c){
	if(b[c]) return;
	b[c]=1;
	for(int i=0;i<k;i++){
		if(x[i]==c) dfs(y[i]);
	}
}
signed main(){
	scanf("%s%d",a,&k);
	len=strlen(a);
	for(int i=0;i<k;i++)
		cin>>x[i]>>y[i];
	dfs(a[0]);
	b[0]=0;
	for(char i='1';i<='9';i++)
		t+=b[i],b[i]=0;
	s=t,t=0;
	for(int i=1;i<len;i++){
		dfs(a[i]);
		for(char i='0';i<='9';i++){
			t+=b[i],b[i]=0;	
		}
		s*=t,t=0;
	}
	print(s);
	return 0;
}
2024/7/26 08:31
加载中...