据说这题第二问的数据直接取 R=3 就可以过...hack 一下这种做法
int cnt = 0;
inline int Construct(int R) {
if (R == 1) return ++cnt;
int rt = ++cnt;
for (int i = 1;i < R;i++) {
for (int j = 1;j <= R - i + 1;j++) {
printf("%d %d 0\n", rt, Construct(i));
}
}
return rt;
}
Construct(10) 可以构造出一棵 53808 个点的树,此时取 R=9 的第二问答案要严格大于取 R=10。
P.S. 我目前认为构造出取 R=k−1 的第二问答案要严格大于取 R=k 的树至少需要 O(3k) 个点,求证明或推翻/kel