对于一个带权无向图,我们可以考察它的单调上升路径。
一条路径被称为单调上升的,如果沿着它走时的权值是单调递增的。
注意,路径由多条首尾相连的边组成,且可经过同一顶点多次。路径的长度为它包含的边数。
举例来说:下图中
下面的结论指出在某些图中总会存在一个比较长的单调上升路径:
结论:假设带权无向图
证明:假设每个节点上有一个探险家。我们按权值从小到大枚举所有的边,每次将该边连接的节点中的探险家的位置进行对调。可以知道,每个探险家都走的是一条单调上升路径。另外,由于共有
现在,我们的问题是:
给定一个完全图
你的任务是给每条边选一个不同的权值,要使得最长的单调上升路径最短。
输入格式
输入仅一行一个正偶数
输出格式
输出整数
第一个数代表你给边
样例一
input
4
output
4 6 2 3 1 5
样例二
input
6
output
12 8 15 3 5 6 7 1 13 10 14 11 4 2 9
子任务及部分分
对于
对于
对于
除不同的测试点有不同特点外,每个测试点你也可能获得部分分。如果你的程序能正确结束并按输出格式输出,我们将用下列方式评分:
假设你的图中最长单调上升路径的长度为
如果
如果
如果
时间限制:
空间限制:
提示
本题提供了一个额外的文件 daydayup.tab。
该文件中有
你可以去观察一下这些表格。如果它们对你有帮助的话,你可以在你的程序中读取这个文件。
当然,你有另一种选择,那就是完全不理会这个文件。即便如此,你照样也可以解决本问题。
在评测时,该文件会与输入文件一样,与你的程序在同一个目录下,且文件名不会更改。
请注意:不要在代码中直接粘贴该文件或是保存过大的常数表格,否则你的代码长度将可能超过比赛的代码长度限制而直接不予评测。