WA求条
查看原帖
WA求条
1423724
dyxcj楼主2025/7/31 22:10

#include<bits/stdc++.h>
using namespace std;
const int L=2,N=50005;
int n,m,tot;
struct wasd{
    int son[L],f;
}t[N*100];
int Give(char w){
    return (w-'0');
}
void update(string z){
    int id,len=z.length(),u=0;
    for(int i=0;i<len;i++){
        id=Give(z[i]);
        if(!t[u].son[id])t[u].son[id]=++tot;
        u=t[u].son[id];
    }
    t[u].f++;
}
int query(string z){
    int u=0,len=z.length(),sum=0;
    for(int i=0;i<len;i++){
        int id=Give(z[i]);
        if(t[u].son[id]==0)return sum;
        u=t[u].son[id];
        sum+=t[u].f;
    }
    return sum;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>m>>n;
    for(int i=1,c;i<=m;i++){
        char w;
        string z="";
        cin>>c;
        for(int j=1;j<=c;j++){
            cin>>w;
            z+=(w+'0');
        }
        update(z);
    }
    for(int i=1,c;i<=n;i++){
        char w;
        string z="";
        cin>>c;
        for(int j=1;j<=c;j++){
            cin>>w;
            z+=(w+'0');
        }
        cout<<query(z)<<"\n";
    }
    return 0;
}
2025/7/31 22:10
加载中...