社区讨论

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 条回复,欢迎继续交流。

正在加载回复...