为什么求`thair` 会超时
查看原帖
为什么求`thair` 会超时
537998
lpx2024楼主2023/3/11 15:33

为什么求thair 会超时

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxN=2000010;
int thair[maxN][127],ed[maxN],cnt;
void Insert(string s){
	int t=1;
	for(int i=0;i<s.size();i++){
		int p=s[i];
		if(!thair[t][p]) thair[t][p]=++cnt;
		t=thair[t][p];
		ed[t]++;
	}
}
int Query(string s){
	int t=1;
	for(int i=0;i<s.size();i++){
		int p=s[i];
		t=thair[t][p];
		if(t==0) return 0;
	}
	return ed[t];
}
int main(){
	int t;
	cin>>t;
	for(int i=1;i<=t;i++){
		int n,m;
		cin>>n>>m;
		memset(thair,0,sizeof(thair));
		memset(ed,0,sizeof(ed));
		cnt=1;
		for(int j=1;j<=n;j++){
			string s;
			cin>>s;
			Insert(s);
		}
		for(int j=1;j<=m;j++){
			string s;
			cin>>s;
			cout<<Query(s)<<endl;
		}
	}
	return 0;
}

234都tle

2023/3/11 15:33
加载中...