VP 时切了 CD,E 题想到了结论但是人傻了,一种情况没有考虑,一直 WAWAWA。
C Reconciled?
显然,当 (abs(n, m) > 1) 时 为 (0) 。
当 (n= m) , 答案为 (2 imes(n!)^2)
当 (n = m + 1) , 答案为 (n! imes m!)
D Built?
差点被吓傻了,以为要什么 ( exttt{Boruvka}) 算法。
显然这题不需要。
考虑贡献函数,(min(|a−c|,|b−d|)) 也就是说每个点尽量向 (x , y) 离他最近的点连边,然后 ( exttt{Kruskal}) 就行了,边数 (4 imes n) 条,轻松通过。
E Connected?
一个比较显然的结论(VP 的时候想到了):只有两个点都在边界上才会影响答案,因为其他的线可以绕绕绕来满足答案。
然后我就脑抽了,只统计了两个点都在 (x) 边界或者 (y) 边界的情况 /qd /kk
一直 WAWAWA ..
考虑有用的线,那么它们在边界上构成了一个类似括号序列的东西,只要排个序,然后用栈,检查是不是括号序列就行了。
F Exhausted?
orz Hall 定理做法,但是我不会,先咕咕咕一下。
考虑贪心,我们可以先按左端点排序,然后按 (L) 尽量放,如果一个点放不了了,那么从之前放的点中选出一个 R 最小的点,然后让它让位,去满足 (R) 的限制,最后 (check) 一下就行了。