ZROI 19.08.04模拟赛

传送门

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



“这应该是正睿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代表什么呢?相信大家已经知道了。

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

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

时间: 2024-11-08 17:35:45

ZROI 19.08.04模拟赛的相关文章

ZROI 19.08.07模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 A R爷再次翻车,搞出来了一道六年前的CF题. \(100pts:\) 然而不是原题也很简单,斜率优化板子,单调队列搞一下就完事了. 也可以wqs二分,复杂度可以做到\(O(m\log m)\),\(与\)p\(无关.所以R爷差点把\)p$出到\(10^5\). B 本题乱搞做法非常多,所以R爷动用了权限来

ZROI 19.08.09模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(70pts:\) 维护一个栈,从一侧向另一侧扫描,如果新加入的元素与当前栈顶相同,则出栈,否则进栈.显然一个子串是括号序列,当且仅当栈为空. 枚举起点,暴力模拟即可.复杂度\(O(n^2)\). \(100pts:\) 对于一个右端点,考虑哪些左端点可以和它匹配. 发现所有合法的左端点,两者栈的内容都是相等的,可以Hash判断. 实际上考虑每次加入字符时,只会在末尾变动一次,可以用trie树维护.复杂度\(O(\sigma

ZROI 19.08.12模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "我发现问题的根源是大家都不会前缀和."--敦爷 A 敦爷spj写错了,差点把蒟蒻swk送走 \(50pts:\) 考虑不输出方案怎么做.显然是树形dp. 设\(f_{i,j,\{0/1/2\}}\)表示\(i\)的子树中,有\(j\)条链,根节点状态为:\(\{\)没选\(/\)选了向下的一条链\(/\)选了向下的两条链\(\}\)的最优解. 对于一棵子树,开始时只考虑根节点,依次合并每个儿子.合并时需要枚举父亲和儿子

ZROI 19.08.10模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(20pts:\) 枚举操作序列然后暴力跑,复杂度\(O(6^n)\). \([50,80]pts:\) 枚举改成dfs,每层操作后还原.复杂度\(O(3^n)\). 全0或全1可以直接返回. 写法优秀可以过\(80pts\). \(100pts:\) 类似非递归fft的写法,bitrev后可以位运算优化. 最下面四层可以预处理,复杂度\(O(3^{n-4})\). 然后疯狂卡常就完事了( 然而由于swk人菜常数大,明明所有

ZROI 19.08.11模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. dlstql,wsl A \(10pts:\) \(a=100,T=100\),对每个排列构造一个反的,一步到位即可. \(20pts:\) \(a=50\),构造\(1\)和所有元素交换的排列,实现交换\((v,u)\)可以令两者分别与\(1\)交换,选择排序即可. \(40pts:\) \(a=30\),构造前\(25\)个元素与\(1\)交换的排列,另有一个排列交换前\(25\)个与后\(25\)个元素. \(a=20\)时

ZROI 19.08.05模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(21pts:\) 随便枚举,随便爆搜就好了. \(65pts:\) 比较显然的dp,设\(f_{i,j,k}\)表示在子树\(i\)中,两个赞助商分别选了\(j,k\)个的最优解. 对枚举的上下界卡的紧一点,按照树上背包的聚合分析,复杂度是\(O(n^3)\)的,可以通过. \(100pts:\) 观察数据范围可以发现,这题的子树大小限制可以抽象成一个经典的网络流模型. 跑一个最大费用流就好了. 我写丑了,每个点拆了\(5

ZROI 19.08.08模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 首先恭喜swk今天翻车! "小心大样例演你."--天祺鸽鸽 果然swk今天被大样例演死了,天祺鸽鸽诚不欺我! A 这题标程是前几天ACM赛的双栈背包-- 然而可以排序之后直接背包,\(O(nm)\)随便过( B 菜 swk 菜 发现答案就是子串中最长border,即串长减去最短循环节. 每个字母是独立的,可以分开计算答案. 对第\(i\)个字母,设循环节循环次数为\(k\),在循环节内的长度为\(f_i\),剩余的长度为

ZROI 19.08.02 杂题选讲

给出\(n\)个数,用最少的\(2^k\)或\(-2^{k}\),使得能拼出所有数,输出方案.\(n,|a_i|\leq 10^5\). 显然一个绝对值最多选一次.这个性质非常强. 如果所有都是偶数,可以直接除以\(2\). 否则\(1\)或\(-1\)必须选,暴力枚举选哪个然后递归,每层去重,发现最多只会递归\(\log a\)次.总复杂度\(O((n+a)\log n)\),等价于线段树上区间长度总和. \(n\)个数,每次可以花费\(1\)的代价给某个数\(+1\)或\(-1\),问变成不

ZROI 19.08.02 计算几何

1.向量基础知识 \(atan2\)可以求极角,但是不是特别精确,在坐标接近\(10^{9}\)时会出锅,安全的做法是叉积. 旋转.反射和平移等都可以抽象为矩阵,即,它们可以复合.(需要一些必修四知识) 给一个序列,每个位置表示旋转.反射.平移中的一种,求\((x,y)\)经过序列\([l,r]\)的点. 线段树维护矩乘就好了,矩阵里需要带个常数位置. Simpson积分 不会积分,告辞. 2.简单题 求点\(p\)在直线\(p_1p_2\)上的投影. 投影就是点积,直接积就行了,必修四怎么学的