CF1948E.Clique Partition

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定两个整数 nn 和 kk。有一个包含 nn 个顶点的图,顶点编号从 11 到 nn,初始时没有边。

你需要为每个顶点分配一个整数,记为 aia_i,表示第 ii 个顶点上的整数。所有 aia_i 应当是 11 到 nn 之间的互不相同的整数。

分配完整数后,对于每一对顶点 (i,j)(i, j),如果 ∣i−j∣+∣ai−aj∣≤k|i - j| + |a_i - a_j| \le k,就在它们之间添加一条边。

你的目标是构造一个可以被划分为最少数量团(对于给定的 nn 和 kk)的图。每个顶点应恰好属于一个团。回忆一下,团是指其中任意两点都有边相连的顶点集合。

由于 BledDest 的编程能力有限,他无法解决“给定一个图,划分为最少数量团”的问题。因此你还需要输出具体的划分方案。

输入格式

第一行包含一个整数 tt(1≤t≤16001 \le t \le 1600),表示测试用例的数量。

每个测试用例包含一行两个整数 nn 和 kk(2≤n≤402 \le n \le 40;1≤k≤2n1 \le k \le 2n)。

输出格式

对于每个测试用例,输出三行:

  • 第一行输出 nn 个互不相同的整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤n1 \le a_i \le n),表示分配给每个顶点的值;
  • 第二行输出一个整数 qq(1≤q≤n1 \le q \le n),表示将图划分为的团的数量;
  • 第三行输出 nn 个整数 c1,c2,…,cnc_1, c_2, \dots, c_n(1≤ci≤q1 \le c_i \le q),表示每个顶点所属的团编号。如果两个顶点 uu 和 vv 满足 cu=cvc_u = c_v,则它们属于同一个团。

如果有多组答案,输出任意一组均可。

输入输出样例

  • 输入#1

    3
    2 3
    5 4
    8 16

    输出#1

    2 1
    1
    1 1
    3 1 5 2 4
    2
    1 1 2 1 2
    1 2 3 4 5 6 7 8
    1
    1 1 1 1 1 1 1 1

说明/提示

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页