社区讨论

洛谷评测机有毒

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 条回复,欢迎继续交流。

正在加载回复...