Why RE
查看原帖
Why RE
335094
Lucifero楼主2021/1/13 20:25
#include <bits/stdc++.h>
using namespace std;
char dic[5]={'W','I','N','G'};
char cid[205];
char cut[5][205][2],name[205];
int cnt[5],f[205][205][5],Len;
void re_title()
{
	cid['W']=0;
	cid['I']=1;
	cid['N']=2;
	cid['G']=3;
}
bool dp(int i,int j,int k)
{
	if (i==j) return name[i]==dic[k];
	if (f[i][j][k]) return true;
	int ii,jj;
	for(ii=1;ii<=cnt[k];ii++)
		for(jj=i;jj<j;jj++)
			if (dp(i,jj,cid[cut[k][ii][0]])
			 && dp(jj+1,j,cid[cut[k][ii][1]]))
				return f[i][j][k]=true;
}
int main()
{
	//玩具取名
	bool flag=false;
	int i,j;
	for(i=0;i<4;i++) scanf("%d",&cnt[i]);
	for(i=0;i<4;i++)
		for(j=1;j<=cnt[i];i++)
			scanf("%s",cut[i][j]);
	scanf("%s",name);
	Len=strlen(name);
	for(i=0;i<4;i++)
		if (dp(0,Len-1,i))
		{
			flag=true;
			printf("%c",dic[i]);
		}
	if (!flag) printf("The name is wrong!");
}
2021/1/13 20:25
加载中...