http://acm.hznu.edu.cn/OJ/problem.php?cid=1263&pid=4
http://acm.hznu.edu.cn/OJ/problem.php?id=2583
题意:从0出发,每次只能跳到(i*2)%n或者(i*2+1)%n,求字典序最大的汉密尔顿回路。
题解:n是奇数无解。
当n是偶数,可以发现i和i+n/2的出边完全相同。
我们把i和i+n/2合并,得到一张n/2个点的图,所有点都需要两条入边和两条出边——欧拉回路!
于是只需要跑出欧拉回路就能对应到原问题了,介于欧拉回路算法的性质,贪心走较大的边即可保证字典序最大。