#P13181. [GCJ 2017 Finals] Spanning Planning

    ID: 15049 远端评测题 60000ms 1024MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2017矩阵树定理Special Judge随机化构造行列式Google Code Jam

[GCJ 2017 Finals] Spanning Planning

题目描述

一个无向图的生成树,是指在只使用该图已有边的前提下,包含所有 NN 个节点、且恰好有 N−1N-1 条边、并且是一棵树的子图。

请你构造一个至少包含 22 个节点、且不超过 2222 个节点的图,使得该图恰好有 KK 种不同的生成树。(当且仅当两棵生成树所用的边集合不同,这两棵生成树才被认为是不同的。)图中每对节点之间至多有一条边,且不得包含自环(即节点与自身相连的边)。

保证对于下述范围内的每个 KK,都至少存在一种满足条件的图。

输入格式

输入的第一行包含一个整数 TT,表示测试用例的数量。接下来有 TT 组测试用例,每组测试用例包含一行,内有一个整数 KK,表示期望的生成树数量。

输出格式

对于每个测试用例,首先输出一行 Case #x: y,其中 xx 表示测试用例编号(从 11 开始),yy 表示你构造的图的节点数(yy 必须在 22 到 2222 之间)。接下来输出 yy 行,每行 yy 个字符,表示该图的邻接矩阵。第 ii 行第 jj 列为 11,表示第 ii 个节点与第 jj 个节点之间有一条边;为 00,表示没有边。注意,该邻接矩阵是对称的,且主对角线上的元素均为 00。

如果存在多种答案,你可以输出任意一种。保证对于下述范围内的每个 KK,都至少存在一种合法解。

2
3
8
Case #1: 3
011
101
110
Case #2: 4
0111
1001
1001
1110

提示

样例解释

在第 1 个用例中,图是一个三角形,去掉任意一条边都能得到一棵不同的生成树。

在第 2 个用例中,解中的可用边为 1−21-2、1−31-3、1−41-4、2−42-4 和 3−43-4。这 8 棵不同的生成树分别由如下边集定义:

  • 1−21-2、1−31-3、1−41-4
  • 1−21-2、1−31-3、2−42-4
  • 1−21-2、1−31-3、3−43-4
  • 1−21-2、1−41-4、3−43-4
  • 1−21-2、2−42-4、3−43-4
  • 1−31-3、1−41-4、2−42-4
  • 1−31-3、2−42-4、3−43-4
  • 1−41-4、2−42-4、3−43-4

限制条件

  • 1⩽T⩽3001 \leqslant T \leqslant 300。

小数据集(30 分,测试集 1 - 可见)

  • 3⩽K⩽100003 \leqslant K \leqslant 10000。

翻译由 GPT4.1 完成。