ZROI 19.08.04模拟赛

传送门

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


实际上最后达到了120差评

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

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

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

天祺鸽鸽nb!


  • A

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

\(100pts:\)

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

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

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

\(k\cdot 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代表什么呢?相信大家已经知道了。

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

posted @ 2019-08-19 08:09  suwakow  阅读(188)  评论(0编辑  收藏  举报
Live2D