这是一道提交答案题。比赛时提交此题显示的成绩就是最终成绩。
在线性解决三染色后,出题人 03 着手于研究图上哈密顿链问题:给你一个
03 生成了一大堆图,在确定这些图都存在至少一条哈密顿链之后,03 便扔给了选手。
看到选手面露难色,03 摆了摆手:“不要那么为难自己。如果找不到哈密顿链,那么告诉我一条尽量长的且不重复经过结点的路径就好了。”
选手立刻拍了桌子:“即使是求最长路,也是 NP 完全问题啊!出题人怎么能随便找个 NP 完全问题随便找几个图,就把题出出来了呢?”
但 03 背过身去指了指考场上高高挂起的横幅 “沉着冷静,认真答题” 就走了。
选手冷静下来之后果然发现数据有蹊跷。虽然测试点各有特点,但存在一个统一的简洁算法能够通过所有测试点。那么聪明的你也能发现这个算法吗?
输入格式
这是一道提交答案题,共有 hamil1.in
~ hamil10.in
。
第一行两个正整数
第二行
接下来
输出格式
对于每组输入数据,你需要提交相应的输出文件 hamil1.out
~ hamil10.out
。
每组数据第一行一个正整数
第二行
样例一
input
3 3 3 3 3 3 3 3 3 3 3 3 1 2 1 3 2 3
output
3 1 2 3
explanation
注意边是有向的。
选手的提交在该测试点上可以获得 10 分。
样例二
input
4 4 1 1 2 2 3 3 4 4 4 4 1 2 2 1 1 3 4 2
output
2 2 1
explanation
选手的提交在该测试点上可以获得 4 分。
注意你不需要提交最优解。
评分标准
对于每个测试点:
- 若你的输出不合法,你的得分为0。否则设你的方案中节点个数个数为
。 - 你的得分为
,即你的 大于等于多少个 ,就得几分。
数据范围
对于所有数据,满足
保证无重边、自环,且存在至少一条哈密顿路径。