WA#3#4#5,求调
查看原帖
WA#3#4#5,求调
1011009
ACGODOG楼主2024/7/13 12:02
#include<bits/stdc++.h>
using namespace std;
const int inf=3000005;
int ch[inf][65],tag[inf],cnt;
int c(char x){
    if('A'<=x&&x<='Z')
        return x-'A';
    else if('a'<=x&&x<='z')
        return x-'a'+26;
    else
        return x-'0'+52;
} 
void ins(string &s){
	int u=0;
	for(int i=0;i<s.length();i++){
		int id=c(s[i]);
		if(!ch[u][id])
		ch[u][id]=++cnt;
		u=ch[u][id];
		tag[u]++;
	}
}
int qry(string &s){
	int u=0;
	for(int i=0;i<s.length();i++){
		int id=c(s[i]);
		if(!ch[u][id])
		return 0;
		u=ch[u][id];
	}
	return tag[u];
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int n,m,t;
	cin>>t;
	while(t--){
		for(int i=1;i<=n;i++)
            for(int j=1;j<=63;j++)
                ch[i][j]=0;
        for(int i=1;i<=n;i++)
            tag[i]=0;
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			string s;
			cin>>s;
			ins(s);
		}
		for(int i=1;i<=m;i++){
			string s;
			cin>>s;
			cout<<qry(s)<<'\n';
		}
	}
	return 0;
}
2024/7/13 12:02
加载中...