CF1211H.Road Repair in Treeland
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 Treeland 有 n 个城市和 n−1 条双向道路。每条道路连接一对不同的城市。从任意一个城市出发,只需沿着这些道路行驶,就可以到达任意其他城市。城市编号为 1 到 n。没错,这其实描述的是一棵无向树。
政府计划修缮所有道路。每条道路都将由某个私营公司负责修缮。全国共有 106 家私营公司,编号为 1 到 106。有些公司可能不会修任何道路,有些公司可能会修多条道路。
为了简化对私营公司工作的监管,规定如下限制:对于每个城市,统计与该城市相连的所有道路的修缮公司数量,这个数量对于每个城市都不能超过 2。换句话说,对于每个城市,与之相连的道路最多只能由两家不同的公司修缮。
Treeland 的国家反腐委员会担心所有(或几乎所有)工作会被一家私营公司垄断。因此,委员会要求将道路分配给公司时,使得 r 的值最小。对于每家公司,统计分配给它的道路数量,所有公司中分配道路最多的数量记为 r。
请帮助政府找到一种分配方案,满足上述要求,并使 r 最小。
输入格式
第一行包含一个整数 t(1≤t≤1000),表示输入数据中测试用例的数量。接下来是每组测试用例的数据。每组测试用例的第一行包含一个整数 n(2≤n≤3000),表示 Treeland 的城市数量。接下来的 n−1 行,每行包含两个整数 xi,yi(1≤xi,yi≤n),表示第 i 条道路连接城市 xi 和 yi。
保证所有测试用例中 n 的总和不超过 3000。
输出格式
对于每个测试用例,输出两行。第一行输出一个整数 r,表示分配给最多道路的公司的最小可能值。第二行输出 n−1 个整数 c1,c2,…,cn−1(1≤ci≤106),其中 ci 表示第 i 条道路分配给的公司编号。如果有多种最优分配方案,输出任意一种即可。
输入输出样例
输入#1
3 3 1 2 2 3 6 1 2 1 3 1 4 1 5 1 6 7 3 1 1 4 4 6 5 1 2 4 1 7
输出#1
1 10 20 3 1 1 1 2 2 2 11 11 12 13 12 13
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?