题目 30133

树分解(宽度 2)

查看题解 ↗GitHub ↗如何评测
题号
30133
时间限制
10000 ms
内存限制
1024 MB
标签
图论
来源
Library Checker (yosupo06) - tree_decomposition_width_2

【题目描述】

给定一张 NN 个顶点、MM 条边的简单无向图,其边为 (ui,vi)(u_i, v_i)。

判断这张图的树宽(tree width)是否不超过 22。如果是,请构造一个树宽不超过 22 的树分解。

也就是说,请构造一棵有 KK 个顶点的树,以及树上每个顶点对应的包(原图顶点的一个子集)B0,B1,⋯ ,BK−1B_0, B_1, \cdots, B_{K - 1}。

  • 0≤K≤10N+M+100 \leq K \leq 10N + M + 10
  • 对每条边 (ui,vi)(u_i, v_i),存在一个同时包含 uiu_i 和 viv_i 的包。
  • 对原图中的每个顶点 ii,树中所有包含顶点 ii 的包所对应的顶点是连通的。

【输入】

输入与输出采用 PACE 2017 Track A 所使用的格式,另请参考样例。

文本
p tw $N$ $M$
$u_1$ $v_1$
$u_2$ $v_2$
$\vdots$
$u_M$ $v_M$

注意 ui,viu_i, v_i 是 1-indexed 的。

【输出】

如果树宽为 33 或更大,在第一行输出 −1-1。(这不是 PACE 2017 Track A 所使用的格式)

否则,按以下格式输出。

文本
s td $K$ $w$ $N$
b $1$ $v$ $\ldots$ $v$
b $2$ $v$ $\ldots$ $v$
$\vdots$
b $K$ $v$ $\ldots$ $v$
$a_1$ $b_1$
$a_2$ $b_2$
$a_{K - 1}$ $b_{K - 1}$
  • KK 是树中顶点的个数。
  • aia_i, bib_i 是树上的边。注意它们是 1-indexed 的。
  • ww 是不超过 22 的整数,表示树分解的大小。总是输出 22 是可以的,但在合适时输出 0,10, 1 也可以。(例如用于测试更强的库)
  • 第 1+i1 + i 行包含第 ii 个包的信息。vv 是原图中 1-indexed 的顶点编号。每行至多包含 w+1w + 1 个顶点 vv。

【输入样例】

文本
p tw 5 6
1 2
2 3
3 4
4 5
2 4
4 1

【输出样例】

文本
s td 5 2 5
b 1 5
b 2 4 5
b 3 3 4
b 4 2 3 4
b 5 1 2 4
1 2
2 3
3 4
4 5

【输入样例2】

文本
p tw 4 6
1 2
1 3
1 4
2 3
2 4
3 4

【输出样例2】

文本
-1

【数据范围】

  • 1≤N≤5000001 \leq N \leq 500000
  • 0≤M≤5000000 \leq M \leq 500000
  • 图是简单图。

【来源】

Library Checker(yosupo06) tree_decomposition_width_2

本题为 special judge(输出任意合法解),暂不可本地评测。

数据下载

题目 30133 的公开数据

正在读取文件列表…

常用命令

题目 30133 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。