trie求调
查看原帖
trie求调
339299
osfly楼主2022/3/9 16:54

刚学,WA了

#include<cstdio>
#include<cstring>
int t;
int n;
char word[100];
int trie[400000][20];
bool end[400000];
int tot;
bool flag;
bool insert()
{
	int len=strlen(word);
	int now=1;
	bool f=1;
	for(int i=0;i<len;i++)
	{
		int ch=word[i]-'0';
		if(!trie[now][ch]) trie[now][ch]=++tot,f=0;
		now=trie[now][ch];
		if(end[now]) return true;
	}
	end[now]=true;
	return f;
}
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		memset(trie,0,sizeof(trie));
		memset(end,0,sizeof(end));
		flag=false;
		tot=0;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			scanf(" %s",&word);
			flag=insert();
		}
		if(flag) printf("NO\n");
		else printf("YES\n");
	}
	return 0;
}
2022/3/9 16:54
加载中...