求助,第三、四个测试点RE
查看原帖
求助,第三、四个测试点RE
1024532
soonwinterSB楼主2024/9/28 11:33
#include <bits/stdc++.h>
const int N=1e6+5;
using namespace std;
int _end[N];
int trie[N][26];
int tot=1,n,m;
void insert(string s){
	int p=1,len=s.length();
	for(int k=0;k<len;k++){
		int ch=s[k]-'a';
		if(trie[p][ch]==0) trie[p][ch]=++tot;
		p=trie[p][ch];
	}
	_end[p]++;
}
int search(string s){
	int p=1,len=s.length(),ans=0;
	for(int k=0;k<len;k++){
		int ch=s[k]-'a';
		if(trie[p][ch]==0) return ans;
		p=trie[p][ch];
		if(_end[p]) ans+=_end[p]; 
	}
	return ans;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		insert(s);
	}
	for(int i=1;i<=m;i++){
		string s;
		cin>>s;
		cout<<search(s)<<endl;
	}
	return 0;
}

2024/9/28 11:33
加载中...