为什么我的样例第三个还正常,第五个会只向下一层啊!!!
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,num,m;
int nex[500007][2], cnt=1;
bool e[500007]={0};
ll a[500007];//前缀和
ll ans=0;
bool flag=0;
int main(){
cin>>n>>m;
for(ll i=1;i<=n;i++){
cin>>num;
ll p=0;
bool c=0;
for(ll j=1;j<=num;j++) {
a[p]++;
cin>>c;
if(!nex[p][c]){
nex[p][c]=++cnt;
}
p=nex[p][c];
}
e[p]++;
}
for(ll i=1;i<=m;i++){
cin>>num;
flag=0;
ll p=0;
bool c;
cnt=0;
ans=0;
while(num--) {
cin>>c;
if(!nex[p][c]){
flag=1;
break;
}
p=nex[p][c];
ans+=e[p];
}
if(flag){
cout<<ans<<endl;
continue;
cout<<ans+a[p]<<endl;
}
}
}