#include<bits/stdc++.h>
#pragma GCC optimize(2)
#define int long long
#define ull unsigned long long
#define endl '\n'
using namespace std;
const int N=1e6;
int ch[N+50][10],id,cnt[N+50],n,T;
string s;
bool insert(string s)
{
bool f1=0,f2=0;
int p=0;
for(int i=0;i<s[i]!='\0';i++)
{
int x=s[i]-'0';
if(ch[p][x]==0)
{
ch[p][x]=++id;
f1=1;
}
p=ch[p][x];
if(cnt[p])
{
f2=1;
}
}
cnt[p]++;
return (f1==0||f2);
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>T;
while(T--)
{
memset(ch,0,sizeof(ch));
memset(cnt,0,sizeof(cnt));
id=0;
cin>>n;
bool f=0;
while(n--)
{
cin>>s;
if(insert(s))
{
f=1;
}
}
if(f)
{
cout<<"NO"<<endl;
}
else
{
cout<<"YES"<<endl;
}
}
return 0;
}
AC自动机模板
于 2025-10-10 22:04:54 首次发布
241

被折叠的 条评论
为什么被折叠?



