标签:https 改变 题目 证明 等价 长度 贪心 欧拉回路 test
写在前面:为了保护正睿题目版权,这里不放题面,只写题解。
“这应该是正睿OI历史上第一次差评破百的比赛。”
“这说明来正睿集训的人越来越多了。”
“我很不能理解差评,因为在比赛开始前就有超过\(40\)个差评了。”
天祺鸽鸽nb!
“这题标程是线性的,可是为什么没有出\(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\)则有解。
输出方案排序后贪心即可,优秀的实现可以做到线性。
\(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)\)。我并查集学傻了
显然图中每个连通块都要有偶数条边,且每个点度数都是奇数。
问题等价于,找\(\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 改变 题目 证明 等价 长度 贪心 欧拉回路 test
原文地址:https://www.cnblogs.com/suwakow/p/11375081.html