怎么RE了
查看原帖
怎么RE了
768382
thy80楼主2024/7/26 20:26
#include<bits/stdc++.h>
using namespace std;
struct node{
	char x[50];
}a[50];
int n;
string s;
bool f[50];
bool dfs(int qw,int cnt)
{
	if(qw<s.size())
	{
		return false;
	}
	if(cnt==s.size())
	{
		return true;
	}
	for(int i=1;i<=4;i++)
	{
		for(int j=1;j<=6;j++)
		{
			if(s[cnt]==a[i].x[j]&&f[i]==false)
			{
				f[i]=true;
				bool flg=dfs(qw-1,cnt);
				flg=max(flg,dfs(qw,cnt+1)); 
				f[i]=false;
				return flg;
			}
		}
	}
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=4;i++)
	{
		for(int j=1;j<=6;j++)
		{
			cin>>a[i].x[j];
		}
	}
	for(int i=1;i<=n;i++)
	{
		cin>>s;
		if(dfs(4,0)==true) cout<<"YES\n";
		else cout<<"NO\n";
	} 
	return 0;
}
	

2024/7/26 20:26
加载中...