社区讨论

hack WA 求助(警钟未起效果)

P10109[GESP202312 六级] 工作沟通参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhjsn2pw
此快照首次捕获于
2025/11/04 07:51
4 个月前
此快照最后确认于
2025/11/04 07:51
4 个月前
查看原帖
连续问了五次AI都无果,望有一位超级巨佬支援一下
CPP
#include <bits/stdc++.h>
using namespace std;
int n, f[305], q, m, a[305], siz[305], ans;
int lca(int x, int y) {
	if (siz[x] > siz[y]) swap(x, y);
    while (siz[x] != siz[y]) y = f[y];
    if (x == y) return x;
    lca(f[x], f[y]);
}
int main() {
    cin >> n;
    for (int i = 1; i < n; i++) cin >> f[i];
    siz[0] = 0;
    for (int i = 1; i < n; i++) {
    	int cnt = 1, fi = i;
    	while (f[fi]) {
    		fi = f[fi];
    		cnt++;
		}
		siz[i] = cnt; 
	}
    cin >> q;
    while (q--) {
        cin >> m;
        for (int j = 1; j <= m; j++) cin >> a[j]; 
        ans = a[1];
        for (int j = 2; j <= m; j++) ans = lca(ans, a[j]);
        cout << ans << "\n";
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...