Codeforces Round 983 (Div. 2)
Dashboard - Codeforces Round 983 (Div. 2) - Codeforces.
2025.1.21 上午和大家一起打,3.5h(?)。
2025.1.21 上午听 XK 讲题,下午看题解、讨论、补题,晚上补题、写题解。
赛时 AC ABCD,CD 耗时长。题已补完。
稀疏矩阵高斯消元。
仙人掌 DP(的一种?)(每个子树 [最多只有](?)一条连到子树外的返祖边,把子树外那个点的 DP 值设出来,带进来表示其他 DP 值,推上去到那个点时解方程)。CF Div1 [E](?).
下标为 -1 不一定 RE。(?)
不要少打空格。
A
值不同的两个开关点亮一盏灯。
统计一下
- 最小:把
放一起、 放一起,如果有剩下的再合一起; 是偶数, 数量奇偶性相同,直接判。 - 最大:把
和 尽量拼一起,点亮的灯的数量就是 个数的 。
B
感觉有点诈骗。
把
- 如果左右两边元素个数都是奇数,直接把左右两边各作为一段。
- 如果左右两边元素个数都是偶数,让左右两段各分出一个数单独作为一段,共五段。
- 如果左边不足
个元素或右边不足 个(那就是 个了)(包含左边无或右边无的情况,其实就是这些情况),则无解。 - 但需要特判
,即左右都无。 - 所以其实是左右一边有一边无是无解的充要条件。(?)
- 如果左边不足
C
对“任意”的限制,找极限情况。发现是 最小+次小(数值可以等于最小)> 最大。
思路
思路
D
询问其实可以用来看两个结点是否是父子关系(不是所有情况都可以)。
思路
思路
另一个观察:最后只有一条那种长的链,因为某种条件下就只能沿着这条链添加了。(???)
E
思路
- 不能直接高斯消元,时间复杂度不行。有两种解决方案:
- 每行只有四个
,且矩阵长得很特殊。把前三个 作为变量,用它们去表示其他的 。剩下 [三个](?)方程,用它们来解这前三个 。应该要钦定其中一个 为 。 - 还是高斯消元,但是只用有的消,发现每行要消的行很少,要消的列也很少。(???)
- 每行只有四个
思路
思路
F
博弈,尝试直接推结论,不会。于是直接 DP。肯定是从之后的局面往之前 DP,为了方便翻转原序列,从前往后 DP。每一段规则除了胜负的判定和 Nim 游戏相同(Nim 或 反 Nim)。
设
记
转移到
+ Nim 先手必败( )。 + 反 Nim 先手必败(全为 :奇 ;不全为 : )。
转移到
+ Nim 先手必胜( )。 + 反 Nim 先手必胜(全为 :偶 ;不全为 : )。
转移是加起来。
初值:
答案:
这里
各种前缀和。
用 [map] 或 [离散化+桶] 来维护
全为
取模。减法也要取模。
小心前缀和相减左边下标到
注意各种东西的初值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!