dfs40分,求助
查看原帖
dfs40分,求助
542974
William_qwq楼主2021/11/24 19:54
#include<bits/stdc++.h>
using namespace std;
map<char,set<char> > m;
set<string> s;
void dfs(string str)
{
	int i;
	for(i=0;i<str.size();i++)
	{
		if(m.count(str[i]))
		{
			for(set<char>::iterator it=m[str[i]].begin();it!=m[str[i]].end();it++)
			{
				string nstr=str.substr(0,i)+*it+str.substr(i+1);
			    if(s.count(nstr)) continue;
			    s.insert(nstr);
			    dfs(nstr);
			}
			
		}
	}
}
int main()
{
	string str;
	int k,i,j;
	cin>>str>>k;
	for(i=1;i<=k;i++)
	{
		char x,y;
		cin>>x>>y;
		m[x].insert(y);
	}
	s.insert(str);
    dfs(str);
    cout<<s.size();
	return 0;
}

2021/11/24 19:54
加载中...