CF1948E.Clique Partition
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个整数 n 和 k。有一个包含 n 个顶点的图,顶点编号从 1 到 n,初始时没有边。
你需要为每个顶点分配一个整数,记为 ai,表示第 i 个顶点上的整数。所有 ai 应当是 1 到 n 之间的互不相同的整数。
分配完整数后,对于每一对顶点 (i,j),如果 ∣i−j∣+∣ai−aj∣≤k,就在它们之间添加一条边。
你的目标是构造一个可以被划分为最少数量团(对于给定的 n 和 k)的图。每个顶点应恰好属于一个团。回忆一下,团是指其中任意两点都有边相连的顶点集合。
由于 BledDest 的编程能力有限,他无法解决“给定一个图,划分为最少数量团”的问题。因此你还需要输出具体的划分方案。
输入格式
第一行包含一个整数 t(1≤t≤1600),表示测试用例的数量。
每个测试用例包含一行两个整数 n 和 k(2≤n≤40;1≤k≤2n)。
输出格式
对于每个测试用例,输出三行:
- 第一行输出 n 个互不相同的整数 a1,a2,…,an(1≤ai≤n),表示分配给每个顶点的值;
- 第二行输出一个整数 q(1≤q≤n),表示将图划分为的团的数量;
- 第三行输出 n 个整数 c1,c2,…,cn(1≤ci≤q),表示每个顶点所属的团编号。如果两个顶点 u 和 v 满足 cu=cv,则它们属于同一个团。
如果有多组答案,输出任意一组均可。
输入输出样例
输入#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测评打分。不知道怎么写?