时间戳优化36分AC on #1#6求调
查看原帖
时间戳优化36分AC on #1#6求调
713914
Phoenix2010楼主2024/9/19 21:53
#include<bits/stdc++.h>
using namespace std;
const int N=3e6+5;
int T,t[N][75],cnt,num[N],dfn[N];
inline void insert(string s){int rt=1;for(int i=0;i<s.size();i++) (dfn[t[rt][s[i]-'0']]==T+1?num[rt=t[rt][s[i]-'0']]++:(dfn[rt=t[rt][s[i]-'0']=++cnt]=T+1,num[rt]=1));}
inline int query(string s){int rt=1;for(int i=0;i<s.size();i++) rt=(dfn[t[rt][s[i]-'0']]==T+1)*t[rt][s[i]-'0'];return num[rt];}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
    cin>>T;
    while(T--)
    {
        int n,q;cin>>n>>q;cnt=1;
        for(int i=1;i<=n;i++){string s;cin>>s;insert(s);}
        while(q--){string s;cin>>s;cout<<query(s)<<"\n";}
    }
    return 0;
}
2024/9/19 21:53
加载中...