求助!
查看原帖
求助!
132976
huayucaiji楼主2021/1/24 22:01

为什么WA,我心态崩了。

//Don't act like a loser.
//This code is written by huayucaiji
//You can only use the code for studying or finding mistakes
//Or,you'll be punished by Sakyamuni!!!
//#pragma GCC optimize("Ofast","-funroll-loops","-fdelete-null-pointer-checks")
//#pragma GCC target("ssse3","sse3","sse2","sse","avx2","avx")
#include<bits/stdc++.h>
#define int long long
using namespace std;

int read() {
	char ch=getchar();
	int f=1,x=0;
	while(ch<'0'||ch>'9') {
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
		x=x*10+ch-'0';
		ch=getchar();
	}
	return f*x;
}

struct trie{
	int nxt[11];
	int end,son;
	
	void clear() {
		fill(nxt,nxt+11,0);
		end=son=0;
	}
}ch[100001];

int n,cnt;
bool flag;
string str[10001];

void insert(string s) {
	int p=0;
	int sz=s.size();
	for(int i=0;i<sz;i++) {
		ch[p].son=1;
		if(ch[p].nxt[s[i]-'0']) {
			p=ch[p].nxt[s[i]-'0'];
		}
		else {
			ch[p].nxt[s[i]-'0']=++cnt;
			p=cnt;
		}
		if(ch[p].end) {
			flag=1;
		}
	}
	ch[p].end=1;
}

signed main() {
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	
	int t=read();
	while(t--) {
		flag=0;
		for(int i=1;i<=cnt;i++) {
			ch[i].clear();
		}
		cnt=0;
		cin>>n;
		for(int i=1;i<=n;i++) {
			cin>>str[i];
		}
		sort(str+1,str+n+1);
		for(int i=1;i<=n;i++) {
			insert(str[i]);
		}
		
		if(!flag) {
			cout<<"YES\n";
		}
		else {
			cout<<"NO\n";
		}
	}

	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

2021/1/24 22:01
加载中...