7pts,RE+WA,求助
查看原帖
7pts,RE+WA,求助
1284088
meifan666楼主2024/12/28 19:22
#include<bits/stdc++.h>
using namespace std;
#define int long long
int tr[50010][10];
int many[50010],mbny[50010];
int len,cnt,n,m;
int a[50010];
void build(){
	int now=0;
	for(int i=1;i<=len;i++){
		if(tr[now][a[i]]==0)tr[now][a[i]]=++cnt;
		now=tr[now][a[i]];
		mbny[now]++;
	}
	mbny[now]--;
	many[now]++;
}
int find(){
	int now=0,ans=0;
	for(int i=1;i<=len;i++){
		if(tr[now][a[i]]==0)return ans+mbny[now];
		now=tr[now][a[i]];
		ans+=many[now];
	}
	return ans+mbny[now];
}
signed main(){
	cin>>m>>n;
	while(m--){
		cin>>len;
		for(int i=1;i<=len;i++)cin>>a[i];
		build();
	}
	while(n--){
		cin>>len;
		for(int i=1;i<=len;i++)cin>>a[i];
		cout<<find()<<'\n';
	}
	return 0;
}
2024/12/28 19:22
加载中...