ZROI 19.08.04模拟赛

传送门

写在前面:为了保护正睿题目版权,这里不放题面,只写题解。


实际上最后达到了120差评

“这应该是正睿OI历史上第一次差评破百的比赛。”

“这说明来正睿集训的人越来越多了。”

“我很不能理解差评,因为在比赛开始前就有超过(40)个差评了。”

天祺鸽鸽nb!


  • A

“这题标程是线性的,可是为什么没有出(5 imes 10^6)呢?因为spj要带个(log),这样就T了。”

(100pts:)

打表观察发现有解当且仅当(sum k^{-a_i}geq 1)

不失一般性,我们可以证明(sum k^{-a_i}= 1)时有解。

为了让(sum k^{-a_i}= 1),我们发现排好序后最后(k)个数一定是相等的(多余的数可以删掉,不影响结果)。

(kcdot k^{-a_i}=k^{-(a_i-1)}),所以把(k)(a_i)改成(1)(a_i-1)总贡献不变。

实现的时候,可以把(k)(i)转化成(1)(i-1),最终得到一个(0)则有解。

输出方案排序后贪心即可,优秀的实现可以做到线性。

  • B

(42pts:)

由于([l_2,r_2])互不相交,发现区间长度之和不会超过(n),暴力并查集即可。

复杂度(O(n cdot alpha n))

(100pts:)

仍然是由于([l_2,r_2])互不相交,对于每个([l_2,r_2])([l_1,r_1])连边,发现每个([l_2,r_2])只会有一个父亲,形成了一个天然的树形结构。

对于每个插入和询问,都在树上暴力地跳父亲,跳到根节点一起处理即可。

唯一的一个问题是,如果([l_1,r_1])([l_2,r_2])相交,可能会需要暴力跳过整个区间。

如果两个区间相交超过一半,则一定有循环节,对循环节取模即可。

复杂度(O(m^2))我并查集学傻了

  • C

显然图中每个连通块都要有偶数条边,且每个点度数都是奇数。

问题等价于,找(frac{n}2)条链覆盖所有边,要求端点覆盖每个点且边不相交。此外要求每条链长度都是偶数。

考虑没有偶数的限制怎么做,显然建虚点跑欧拉回路就可以。

(10pts:)

对于完全图,发现只有(4|n)时才有解。

考虑每次加入(4)个点,内部构造显然,与之前(4n)个点连边是一个度数均为偶数的二分图,很好做。

(65pts:)

爆搜,我也不知道为什么跑那么快

(100pts:)

考虑求出一个(frac m2)条链的链覆盖。假设已经求出了,我们建一张新图,如果存在一条链直接连接((x,y)),则在新图中连一条((x,y))的边。显然新图中度数的奇偶性不会改变,在新图中跑欧拉回路,最后把每条链拆开即可。

考虑如何求这个链覆盖。

在图里建一棵dfs树,则非树边一定是返祖边。

对于每条边都在深度较浅的点考虑,这样到某个节点时,与它有关的剩余边一定只包含:它的儿子与它之间的边,它的子树中向它连的返祖边,它连向父亲的边。对前两类边匹配,如果有剩余就匹配掉到父亲的边。由于边数为偶数,根节点一定可以匹配。


写在后面:

这场同时是正睿历史上评价波动最大的一场比赛。虽然在某些人的操纵下最后还是变成了负数,但是仍然在中途达到了(+30),我也很荣幸记录下了这一刻。

昙花一现

原因很有趣,也很悲伤。

“由于小K受伤了,因此许多朋友都去慰问他。”

“小K正在忙着恢复服务器中丢失的一份数据。”

“小K拥有(n)工作室,这(n)个工作室之间用(m)条道路相互连接。”

小K代表什么呢?相信大家已经知道了。

这也是我第一次对这道题的出题人产生由衷的敬意。

原文地址:https://www.cnblogs.com/suwakow/p/11375081.html