较小权不完美非匹配¶
时间限制:0.5 秒;内存限制:128 MiB。时限按目标环境标准程序最慢中位数乘2,向上取整至0.5秒;见评测环境。
背景故事¶
“充分的准备永远不可能有行动!”
给你一张连通的无向带权图,你需要从顶点 \(1\) 出发,访问每个顶点至少一次,再回到顶点 \(1\) ,并按顺序给出经过的边。
不过,我们并不要求你找到最短的行走。题目已经准备了一个未必最优的预备方案,你的方案将按总边权与它的比较结果评分。请构造一个符合规则、能够拿到满分的方案。
形式化问题描述¶
给定有 \(n\) 个顶点、\(m\) 条边的连通无向带权图。顶点编号为 \(1,\ldots,n\) ,边按输入顺序编号为 \(1,\ldots,m\) .允许重边和自环。
输出一段边编号序列,使行走从顶点 \(1\) 开始,沿这些边依次移动,访问每个顶点至少一次,最后回到顶点 \(1\) .同一条边可以重复使用,但总使用次数不得超过 \(5n\) .起点在行走开始时已算作访问;\(n=1\) 时空行走合法。
令 \(W\) 为图的最小生成树总权值,\(B=2W\) .令合法输出的总边权为 \(Y\) ,重复经过的边重复计权。每个测试点的百分制得分为
非法输出得零分。\(B=0\) 时中间分支不可能出现:零费用合法行走得100分,其余合法行走得40分。各测试点的得分按下表权重相加。任务是输出能获得满分的合法行走。
输入格式¶
第一行 n m .接下来 \(m\) 行,每行 u v w 表示一条端点为 \(u,v\) 、权值为 \(w\) 的无向边。
输出格式¶
第一行输出边的使用次数 \(k\) .接下来 \(k\) 行,每行输出一个边编号。允许任意满分解;样例输出不唯一。
样例 1¶
输入¶
3 3
1 2 1
2 3 2
1 3 5
输出¶
4
1
2
2
1
样例 2¶
输入¶
1 0
输出¶
0
样例 3¶
输入¶
2 3
1 1 9
1 2 0
1 2 4
输出¶
2
2
2
样例 4¶
输入¶
5 5
1 2 1
2 3 1
3 4 1
4 5 1
1 5 3
输出¶
5
1
2
3
4
5
样例解释¶
样例1选择权值为1和2的两条树边,各往返一次,总费用为6,等于基准 \(B\) .样例2没有边,起点已经覆盖所有顶点。样例4的五条边形成合法闭路,费用为7,也能拿到满分。
加粗边构成最小生成树;边编号1、2依次往返即可覆盖三个顶点。
数据范围与分值¶
\(1\le n\le10^5\) ,\(n-1\le m\le2\cdot10^5\) ,\(1\le u,v\le n\) ,\(0\le w\le10^4\) .图连通。
| 分值 | 额外限制 |
|---|---|
| 20% | \(n\le8,\ m\le15\) |
| 30% | \(n\le1000,\ m\le3000\) |
| 50% | 无额外限制 |
共10个测试点,每点占10%;完整配方见测试说明。