P17244 [IOI 2026] 魔幻之城 / Magic City

题目描述

塔什干市的市长想要重新设计著名的魔幻之城游乐园。给定一个正整数 $K$,你的任务是设计一个游乐园如下: - 选择一个整数 $N$ 作为景点的数量。景点用 $0$ 到 $N-1$ 的整数进行编号。 - 添加若干条双向步道,每条步道连接两个**不同的**景点。在同一对景点之间可以有不止一条步道。**不要求通过这些步道就能在任意两个景点之间通行。** - 对于每个满足 $0\le i

输入格式

```text K ```

输出格式

```text N M T[0] T[1] ... T[N-1] U[0] V[0] U[1] V[1] ... U[M-1] V[M-1] ``` 请注意,评测程序示例的输出结果满足输出文件的格式要求。

说明/提示

### 例子 考虑以下调用: ```cpp construct(1) ``` 在这个例子中,$K=1$,因此有 $2K=2$ 种景点类型。下图展示了一个包含 $N=4$ 个景点和 $M=2$ 条步道的符合要求的答案。景点 $0,1,2$ 的类型为 $0$,景点 $3$ 的类型为 $1$。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/srvp6pn2.png) ::: 这里共有两个有趣的三元组: - 对于类型三元组 $(0,1,0)$,我们可以选择 $(a_1,a_2,a_3)=(2,3,2)$。 - 对于类型三元组 $(1,0,1)$,我们可以选择 $(a_1,a_2,a_3)=(3,2,3)$。 这表明条件 1 已满足。 该函数可以返回二元组 $([0,0,0,1],[(0,1),(2,3)])$。请注意,此处提供的答案可能不是 $K=1$ 时的最优解。 ### 约束条件 - $1\le K\le 50$ ### 评分 共有 $50$ 个子任务,分别对应从 $1$ 到 $50$ 的整数 $K$。对于子任务 $i$($1\le i\le 50$),$K$ 的值为 $i$。 每个子任务都有一个分值 $S$ 和景点的目标数量 $P$,如下表所示: | 子任务 | $S$ | $P$ | |:---:|---:|:---:| | $1$ | $1$ | $2$ | | $2$ | $8$ | $12$ | | $3$ | $9$ | $24$ | | $4$ | $9$ | $40$ | | $5$ | $9$ | $50$ | | $6$ - $10$ | $4$ | $12\cdot K$ | | $11$ - $12$ | $3$ | $12\cdot K$ | | $13$ - $50$ | $1$ | $12\cdot K$ | 对于每个子任务,如果你的答案未给出一个符合要求的游乐园,则你的得分为 $0$(在 CMS 中报告为 `Output isn't correct`)。 否则,你的得分将根据下表由 $N$ 以及参数 $S$ 和 $P$ 计算: | 条件 | 分数 | |:---:|:---:| | $N\le P$ | $S$ | | $P