P6865 [RC-03] 染色
题目背景
提示:输入文件很大,因此下载可能较慢(约需 3 分钟),请耐心等待。
**本题为提交答案题。** 输入数据请在[这里](http://119.27.163.117/images/files/input.zip)下载。
你提交的答案**最好**依次命名为:
- 01.out
- 02.out
- $\dots$
- 18.out
题目描述
给一个无向图,求尽量小的 $k$,使得能够把节点分为 $k$ 个集合,且同一集合的点间没有边。
输入格式
第一行三个整数:$n,m,k_0$,表示有 $n$ 个点,$m$ 条边,你的 $k$ 只要满足 $k\le k_0$ 就能得到满分。
接下来 $m$ 行,每行两个数 $x,y$,描述一条边 $(x,y)$。$(1\le x,y\le n,x\ne y)$
输出格式
两行,第一行为一个整数 $k$,为你的答案。$(1\le k\le n)$
第二行 $n$ 个整数,第 $i$ 个表示 $i$ 被分到的集合编号 $a_i$。$(1\le a_i\le k)$
说明/提示
对于每个测试点:
- 若你的输出不合法,你将得到 $0$ 分。
- 若 $k\le k_0$,你将得到满分。
- 否则你将得到(设该测试点满分为 $a$):$\lfloor a \times \dfrac{k_0}{k}\rfloor$ 分。
本题共有 $18$ 个测试点,所有测试点均满足 $1\le n\le 10^5$,$1\le m\le 5\times 10^5$,且保证存在一种满足 $k\le k_0$ 的方案。以下是每个测试点的分值:
| 测试点编号 | 分值 |
| :----------: | :----------: |
| $1\sim 4$ | $4$ |
| $5\sim 6$ | $5$ |
| $7\sim 17$ | $6$ |
| $18$ | $8$ |