100pts #11 TLE 求调
查看原帖
100pts #11 TLE 求调
1317268
CuteLemonLMX楼主2025/6/27 13:46

救我!!!!!!!!!!!!!!!!!

#include <bits/stdc++.h>
using namespace std;
struct node{
	vector<int> children;
	int parent;
	int dep;
} tr[314];

int lca(int u, int v){
	if (u == -1) return v;
	while (u != v){
		if (tr[u].dep > tr[v].dep) u = tr[u].parent;
		else v = tr[v].parent;
	}
	return u;
}

int main(){
	tr[0].dep = 1;
	int n;
	cin >> n;
	for (int i = 1; i < n; i++){
		int x;
		cin >> x;
		tr[x].children.push_back(i);
		tr[i].parent = x;
		tr[i].dep = tr[tr[i].parent].dep + 1;
	}
	
	int q;
	cin >> q;
	while (q--){
		int m;
		cin >> m;
		
		int ans = -1;
		for (int i = 1; i <= m; i++){
			int x;
			cin >> x;
			ans = lca(ans, x);
		}
		
		cout << ans << endl;
	}
	return 0;
}
2025/6/27 13:46
加载中...