WAAAAAAA
查看原帖
WAAAAAAA
1241963
20130512admin楼主2024/12/6 21:50
#include<bits/stdc++.h>
using namespace std;
int head[305],q,m,p[305],n;
bool k[305][305];
void dfs(int u,int x)
{
	k[u][x]=true;
	if(u==0) return;
	dfs(head[u],x);
}
int main()
{
	cin>>n;
	for(int i=1;i<n;i++) cin>>head[i];
	cin>>q;
	for(int i=1;i<n;i++) dfs(i,i);
	while(q--)
	{
		cin>>m;
		for(int i=1;i<=m;i++)
			cin>>p[i];
		for(int i=n-1;i>=0;i--)
		{
			bool ok=true;
			for(int j=1;j<=m;j++)
				if(k[i][p[j]]==false)
					ok=false;
			if(ok==true)
			{
				cout<<i<<endl;
				break;
			}
		}
	}
 	return 0;
}

2024/12/6 21:50
加载中...