求助
查看原帖
求助
1389980
CBL_2010楼主2024/7/18 16:49
#include<bits/stdc++.h>
using namespace std;
const int N=20,M=50;
int k;
char x[N],y[N];
string n;
int ln;
bool flag[M];
int ans=1;
void dfs(char c)
{
	if(flag[c])
		return;
	flag[c]=1;
	for(int i=1;i<=k;i++)
		if(x[i]==c)
			dfs(y[i]);
}
void init()
{
	cin>>n;
	ln=n.length();
	cin>>k;
	for(int i=1;i<=k;i++)
		cin>>x[i]>>y[i];
}
void work()
{
	for(int i=0;i<ln;i++)
	{
		dfs(n[i]);
		int t=0;
		for(int j='0';j<='9';j++)
		{
			if(flag[j])
				t++;
			flag[j]=0;
		}
		ans*=t;
	}
}
void output()
{
	cout<<ans<<endl;
}
int main()
{
	init();
	work();
	output();
	return 0;
}

本机上测试没有问题,但提交后WA。

2024/7/18 16:49
加载中...