感觉知道 Landau 定理之后就很简单()
前置知识
Landau 定理:一个长度为 n 的序列 a1,a2,…,an 是竞赛图每点出度从小到大排列的序列,当且仅当下面两个条件同时满足:
- i=1∑nai=2n(n−1)
- i=1∑jai≥2j(j−1)(1≤j≤n)
题解
对 n 个点的竞赛图,记 degi 表示 i 点的出度大小,则图上边的数量即为 i=1∑ndegi=2n(n−1)。因为题目的数据范围中保证了图上边的总数量不超过 30n,解不等式可得 n≤61 一定可以满足条件。
因此考虑直接 dp:设 fi,j,k 表示当前处理到了 i 号点,当前点的数量为 j,边的数量为 k,是否合法。转移直接枚举 i 号点增加的边的数量即可,构造方案在 dp 过程中记录转移路径然后利用 Landau 定理随便构造即可。
总时间复杂度为 O(n5),但是跑不满所以可以通过。
喜欢的话,留下你的评论吧~