社区讨论
洛谷评测机有毒
P2580于是他错误的点名开始了参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi7csdgu
- 此快照首次捕获于
- 2025/11/20 19:33 4 个月前
- 此快照最后确认于
- 2025/11/20 19:33 4 个月前
同一棵字典树
同一个程序
本机样例输出:
OK
REPEAT
WRONG
洛谷在线IDE输出:
OK
REPEAT
REPEAT
求助dalao怎么回事
CPP#include<bits/stdc++.h>
#define MAXN 100005
#define MAXM 1000005
#define re register int
using namespace std;
typedef long long ll;
ll read()
{
ll ret=0,f=1;char ch=getchar();
while('0'>ch||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while('0'<=ch&&ch<='9'){ret=(ret<<3)+(ret<<1)+(ch^48);ch=getchar();}
return ret*f;
}
ll CNT,n,m,k;
struct Trie
{
int son[30];
bool vis,have;
void init()
{
memset(son,0,sizeof(son));
have=vis=0;
}
}trie[MAXM];
string s;
void insert(string in,int len)
{
re now=0,x;
for(re i=0;i<len;i++)
{
x=in[i]-'a';
if(!trie[now].son[x])trie[now].son[x]=++CNT,trie[CNT].init();
now=trie[now].son[x];
}
trie[now].have=1;
}
int query(string in,int len)
{
re now=0,x;
for(re i=0;i<len;i++)
{
x=in[i]-'a';
if(!trie[now].son[x])return 0;
now=trie[now].son[x];
}
if(!trie[now].have)return 0;
if(!trie[now].vis)trie[now].vis=1;
else return 2;
return 1;
}
int main()
{
ios::sync_with_stdio(false);
n=read();
for(re i=1;i<=n;i++)
{
cin>>s;
insert(s,s.size());
}
m=read();
for(re i=1;i<=m;i++)
{
cin>>s;
k=query(s,s.size());
if(k==0)puts("WRONG");
if(k==1)puts("OK");
if(k==2)puts("REPEAT");
}
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...