ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【笔记】IOI2022

2022-08-16 13:01:41  阅读:219  来源: 互联网

标签:le 可以 mid 笔记 IOI2022 ge 我们


「IOI2022」鲶⻥塘

签到题。

如果我们记 \(a_i\) 表示第 \(i\) 列的高度,那么一定不存在 \(a_i\ge a_{i +1}\le a_{i+ 2}(a_{i+1} \neq 0)\) 的情况,假设存在,我们将 \(a_{i + 1}\leftarrow 0\) 答案不会更劣。同理如果 \(a_i\le a_{i + 1} \ge a_{i + 2}\),我们就将 \(a_{i + 1}\) 取到最大值。

对于对于每个非 \(0\) 段都是单峰的,这样我们就可以简单 DP,\(f/g\) 表示到了哪一个,现在是增还是减的最优值。

此时复杂度还是 \(\mathcal{O}(N^2)\),注意到对于每一列一定是修到顶或者修到某个鱼前面停止,所以状态可以优化到 \(\mathcal{O}(M)\),剩下的直接DP 就行。

「IOI2022」囚徒挑战

非常有意思的交互题。

我们比大小,直接二进制拆分从高位到低位比较,优化一下顺序即可做到 \(2\log n = 26\),同时三进制拆分可以做到 \(3\log_3 n = 24\)。由于题目保证两个数不相同,二进制拆分做法的最后两次是不需要比较的,也可以做到 \(24\) 次。

后面的方法是我没想到的,我们可以同时混用二进制和三进制。相当于每次将 \(n\) 等分成 \(k\) 份,然后递归下去。这样我们可以列出 DP 方程,\(f_n = \min\{k + f_{n/k}\}\),同时如果这个人看到的数是 \(1\) 或者是 \(n\) 可以直接结束,所以是 \(f_n = \min\{k + f_{(n - 2)/k}\}\),卡卡常就能过去了。

「IOI2022」⽆线电信号塔

前 \(4\) 个子任务非常简单。其余待补。

「IOI2022」数字电路

这题竟然是 IOI2022 通过人数最多的题,不过我愣是瞪了两个小时没想出来。

这题的关键在于组合意义,对于一个阈值门,如果它有 \(k\) 个儿子是 \(1\),那么它就有 \(k\) 种取值,组合意义是对于每个为 \(1\) 的阙值门,选则一个为 \(1\) 的儿子与之配对。

那么我们就可以直接算贡献了,相当于固定一条从叶子到根的路径,路径之外随便填即可。这样每个输入门之间独立,简单 DFS 可以求出每个叶子对根的贡献,然后线段树维护区间操作即可。

「IOI2022」最罕见的昆虫

个人认为这是最简单的一题。

我们将所有数扫一遍,始终保持最大出现次数为 \(1\),这样可以得到颜色数 \(c\)。

由于我们询问得到最大值,要求最小值,显然是二分。我们二分 \(mid = \left\lfloor\frac{n}{k}\right\rfloor / 2\),将所有数扫一遍,始终保持最大出现次数 \(\le mid\)。最后如果在机器里的数 \(=mid\times c\),说明 \(ans \ge mid\),否则 \(ans < mid\)。

如果 \(ans\ge mid\),直接将机器里的数全部删掉,否则将机器外的数全部删掉,然后递归下去,每次 \(n\) 都会减半。次数是 \(f(n) = n + f(n / 2) \approx2n\),然后算上最开始扫一遍的 \(n\) 次。同时这题需要一些常数优化的技巧。

「IOI2022」千岛

对于任意 \(u\to v\) 存在 \(v\to u\) 的 sub,找到一个分叉即可构造答案,即 \(1-x,x-y,x-z\),\(x\) 可以等于 \(1\)。

对于任意 \(u\to v\) 存在另一条 \(u\to v\) 的 sub,我们只用找到一个环,正着走两遍,再倒着走两遍即可。

对于所有测试点,核心思路是找到两个环然后构造答案,需要讨论各种 case,细节没想清楚,回头再补。

标签:le,可以,mid,笔记,IOI2022,ge,我们
来源: https://www.cnblogs.com/7KByte/p/16591188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有