求助,为啥6RE,1WA
查看原帖
求助,为啥6RE,1WA
487463
13802919466djh楼主2022/3/17 16:31

RT

#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){int f=1,x=0;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1; ch=getchar();}while (ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;}
inline void write(int x){if (x<0){putchar('-');x=-x;}if(x>9) write(x/10);putchar(x%10+'0');}
inline void Write(int x){write(x);putchar('\n');}
const int N=10005,M=100005;
int n,m,trie[N][26],id,cnt[N],Trie[M][26],Id,Cnt[M];
void insert(string s){
	int p=0;
	for (int i=0;i<s.size();i++){
		int x=s[i]-'a';
		if (trie[p][x]==0)trie[p][x]=(++id);
		p=trie[p][x];
	}
	cnt[p]++;return;
}
int find(string s){
	int p=0;
	for (int i=0;i<s.size();i++){
		int x=s[i]-'a';
		if (trie[p][x]==0)return 0;
		p=trie[p][x];
	}
	return cnt[p];
}
void Insert(string s){
	int p=0;
	for (int i=0;i<s.size();i++){
		int x=s[i]-'a';
		if (Trie[p][x]==0)Trie[p][x]=(++Id);
		p=Trie[p][x];
	}
	Cnt[p]++;return;
}
int Find(string s){
	int p=0;
	for (int i=0;i<s.size();i++){
		int x=s[i]-'a';
		if (Trie[p][x]==0)return 0;
		p=Trie[p][x];
	}
	return Cnt[p];
}
signed main(){
	n=read();
	for (int i=1;i<=n;i++){
		string s;cin>>s;
		insert(s);
	}
	m=read();
	for (int i=1;i<=m;i++){
		string s;cin>>s;
		int val=find(s);
		if (val==0)printf("WRONG\n");
		else{
			val=Find(s);
			if (val==0)printf("OK\n");
			else printf("REPEAT\n");
			Insert(s);
		}
	}
    return 0;
}

提交记录

求助大佬!

2022/3/17 16:31
加载中...