社区讨论
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 条回复,欢迎继续交流。
正在加载回复...