本地编译过了,但提交显示CE
查看原帖
本地编译过了,但提交显示CE
837613
QBY1617楼主2024/2/25 12:17

为什么本地编译过了,但是提交显示CE了?

#include<bits/stdc++.h>
using namespace std;
int t; 
int n,q;
int cnt[3000005];
int trie[3000005][80],tot,end[3000005];
int get(char x){
    if(x>='A'&&x<='Z')return x-'A';
    else if(x>='a'&&x<='z')return x-'a'+26;
    else return x-'0'+52;
} 
void Insert(string s){
	int len=s.size(),p=1;
	for(int i=0;i<len;i++){
		int ch=get(s[i]);
		if(trie[p][ch]==0) trie[p][ch]=++tot;
		p=trie[p][ch];
		cnt[p]++;
	}
	end[p]=1;
}

int find(string s){
	int len=s.size(),p=1;
	for(int i=0;i<len;i++){
		p=trie[p][get(s[i])];
		if(p==0) return 0;
	}
	return cnt[p];
}
string s;
int main(){
	cin>>t;
	while(t--){
		memset(trie,0,sizeof trie);
		memset(end,0,sizeof end);
		memset(cnt,0,sizeof cnt);
		cin>>n>>q;
		for(int i=1;i<=n;i++){
			cin>>s;
			Insert(s);
		}
		while(q--){
			string s1;
			cin>>s1;
			cout<<find(s1)<<"\n";
		}
	}
	return 0;
}

2024/2/25 12:17
加载中...