7分求调
查看原帖
7分求调
1270559
zkhehe楼主2025/7/3 19:16
#include <bits/stdc++.h>
using namespace std;
int n,m; 
int t[500005][2],id=0;
int v[500005];
int w[500005];
int main(){
	scanf("%d%d",&m,&n);
	for(int i=1;i<=m;i++){
		int b;
		scanf("%d",&b);
		int u=0;
		for(int j=1;j<=b;j++){
			int f;
			scanf("%d",&f);
			if(!t[u][f])t[u][f]=++id;
			u=t[u][f];
			w[u]++;
		}
		v[u]=1;
	}
	for(int i=1;i<=n;i++){
		int b;
		scanf("%d",&b);
		int u=0,f=0,ans=0;
		for(int j=1;j<=b;j++){
			scanf("%d",&f);
			if(!t[u][f]){
				for(int k=j+1;k<=b;k++)scanf("%d",&f);
				break;
			}
			ans+=v[t[u][f]];
			u=t[u][f];
		}
		ans+=w[u];
		if(v[u])ans--;
		printf("%d\n",ans);
	}
	
	return 0;
}

2025/7/3 19:16
加载中...