字典树模板,36分求助,AC56 WA1234
  • 板块灌水区
  • 楼主OR_Boy
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/1/30 16:55
  • 上次更新2023/10/24 02:32:06
查看原帖
字典树模板,36分求助,AC56 WA1234
933651
OR_Boy楼主2023/1/30 16:55

36分求助,AC56 WA1234,

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#include<math.h>
#include<string.h>
#include<bitset>
#define FOR(i,m,n) for(int i=m;i<=n;i++)
#define ll long long
#define mp(a,b) make_pair(a,b)
using namespace std;
int tl=0,a[3000007][127],n,m,ans[3000007],T;
string s;
void add(const string &s){
    int sum=0;
    FOR(i,0,s.size()-1){
        if(!a[sum][s[i]-'A'+1])a[sum][s[i]-'A'+1]=++tl;
        sum=a[sum][s[i]-'A'+1];
        ans[sum]++;
    }
}
int check(const string &s){
    int sum=0,res=0;
    FOR(i,0,s.size()-1){
        if(!a[sum][s[i]-'A'+1])return 0;
        sum=a[sum][s[i]-'A'+1];
    }
    return ans[sum];
}
int main(){
    cin>>T;
    while(T--){
        cin>>n>>m;
        FOR(i,1,n)cin>>s,add(s);
        FOR(i,1,m)cin>>s,cout<<check(s)<<endl;
        FOR(i,0,tl){
            FOR(j,1,126)a[i][j]=0;
            ans[i]=0;
        }
        tl=0;
    }
    return 0;
}
2023/1/30 16:55
加载中...