样例全过 AT上21个WA 求调
查看原帖
样例全过 AT上21个WA 求调
56398
awask楼主2022/11/12 17:46

用的 Next_permutation + unordered_map 判重

#include<bits/stdc++.h>
using namespace std;
unordered_map<string,bool> x;
int n,m,per=1;
string t[9],r;
void dfs(int step,string s)
{
	s=s+t[step+1];
	if(s.size()>16)return ;
	if(step==n-1)
	{
		if(x[s]==0&&s.size()>2&&s.size()<17)
		{
			cout<<s;
			exit(0);
		}
		return ;
	}
	for(int i=1;i<=16-s.size()-(n-step)+1;i++)
		{
			s+="_";
			dfs(step+1,s);
		}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>t[i],per*=i;
	for(int i=1;i<=n;i++)
	{
		cin>>r;
		x[r]=1;
	}
	for(int i=1;i<=per;i++)
	{
		dfs(0,"");
		next_permutation(t+1,t+n+1);
	}
	cout<<-1;
	return 0;
}
2022/11/12 17:46
加载中...