这字典树版子哪里有问题啊?
  • 板块学术版
  • 楼主shitbro
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/6/20 13:34
  • 上次更新2023/11/7 00:20:06
查看原帖
这字典树版子哪里有问题啊?
90972
shitbro楼主2020/6/20 13:34
#include<bits/stdc++.h>
#define MAXN 100005
using namespace std;
int ch[MAXN][5],vis[MAXN],tot = 0,flag = 0,cas;
void trie(char *s) {
	int u = 0,len = strlen(s);
	for(int i = 0;i < len;i ++) {
		int c = s[i] - '0';
		if(!ch[u][c]) ch[u][c] = ++ tot;
		else if(i == len - 1) flag = 1;
		u = ch[u][c];
		if(vis[u]) flag = 1;
	}
	vis[u] = 1;
}
int main()
{
	int t; scanf("%d",&t);
	while(t --) {
		flag = tot = 0;
		memset(ch,0,sizeof ch); 
		memset(vis,0,sizeof vis);
		int n; scanf("%d",&n);
		char s[MAXN];
		for(int i = 1;i <= n;i ++) {
			scanf("%s",s);
			trie(s);
		}
		if(flag) printf("NO\n");
		else printf("YES\n");
		
	} 
	return 0;
}

2020/6/20 13:34
加载中...