社区讨论
20pts输出格式错误求调
P9592「Daily OI Round 1」Tree参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @miyj20nq
- 此快照首次捕获于
- 2025/12/09 19:59 3 个月前
- 此快照最后确认于
- 2025/12/10 09:32 3 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int t, n, k, fa[301000], nn, u, g[1001000], p, dd;
long long d, zz;
int main() {
scanf("%d", &t);
while (t) {
scanf("%d%lld%d", &n, &d, &k);
zz = n - 1, nn = 1, u = 1, g[0] = 1, p = 0, dd = 1;
if (d < zz) {
printf("NO\n");
t--;
continue;
}
while (zz < d) {
g[u] = nn + 1;
zz = zz + (n - nn - k);
for (int i = nn + 1; i <= nn + k; i++)
fa[i] = g[u - 1];
nn = nn + k;
if (nn + k > n) {
p = 1;
break;
}
u++;
}
if (p == 1) {
printf("NO\n");
t--;
continue;
}
nn++;
while (zz > d) {
while (zz - (u - dd) < d)
dd++;
fa[nn] = g[dd - 1];
nn++, zz = zz - (u - dd);
}
for (int i = nn; i <= n; i++)
fa[i] = g[u - 1];
printf("YES\n");
for (int i = 2; i <= n; i++)
printf("%d ", fa[i]);
printf("\n");
t--;
}
return 0;
}
测了许多hack都是对的,显示输出格式错误
回复
共 3 条回复,欢迎继续交流。
正在加载回复...