ICode9

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

Codeforces Global Round 17 简要题解

2021-11-28 21:35:40  阅读:274  来源: 互联网

标签:匹配 17 题解 Global 合法 括号 考虑 关键点 贪心


比赛质量比较不错。题不是非常难但也不很容易想出做法。

A. Anti Light's Cell Guessing

注意判断 \(1 \times 1\) 的情况。

B. Kalindrome Array

一种数一定是删完最优,且只会删两端第一次不匹配的两种数(否则一定不合法),暴力判断即可。

C. Keshi Is Throwing a Party

发现二分长度之后可以直接贪心选择是否加入。

D. Not Quite Lee

用 Bezout 定理,直接考虑 GCD \(2\) 的次幂即可(其他质因子一定满足)。

E. AmShZ and G.O.A.T.

比赛结束刚想出来。

发现不合法的只需要用 \(3\) 个数就能判定了(证明:写出合法需要满足的不等式限制,考虑枚举中间数 \(a_m\),则第一个一定选 \(a_1\),第三个一定选 \(a_{m+1}\),那么如果这一步合法,下一步选择 \(a_2, a_{m+2}\) 一定合法)

枚举剩余序列的第一个数 \(a_i\),因为只考虑相对大小,将它置为 \(0\),则后面非 \(0\) 的数只有最多 \(\log V\) 个,那么直接贪心即可。

F. Mashtali: a Space Oddysey

我们构造使得每个邻边权值和为奇数的点都合法。这种问题可以考虑通过定向欧拉回路解决(因为欧拉回路保证出入度相等)。

如果只有 \(1\) 权边,那么可以直接用树上翻转路径/欧拉回路解决。

因为 \(2\) 权边不影响奇偶性,我们将每个点拆成 \(1\) 点和 \(2\) 点。

新建一个源点 \(s\)。

如果 \(1/2\) 点度数为 \(1\),将其与 \(s\) 相连。如果度数都为 \(1\),则将两者直接相连(这样保证差最大为 \(1\))。这样一定可以满足条件。

注意判断图不连通。

G. AmShZ Wins a Bet

注意到我们删去的是一个合法括号串。考虑一对匹配的括号,形如 (s) 的形式,我们证明存在一组最优方案使 s 全部为空:

  • 如果 \(s\) 只含 (,那么可以改变匹配的括号使 s 为空;
  • 如果 \(s\) 含 ),那么我们不匹配这对括号答案字典序变小。

因此对于每个字符有两种决策:匹配一对极小的括号对并将中间的字符全部删去(需要能匹配上)、不匹配。

注意这相当于在 NFA 上走,所以贪心很难解决。

考虑直接 DP 一个后缀的最小答案。注意每步转移只加一个字符,因此可以直接维护一棵树,用倍增 hash 维护字典序。

好像也有更简单的做法,但是不会。

H. Squid Game

先考虑只有直上直下的链。

考虑一个贪心:从下往上,尽可能在浅的地方放关键点。

类似 NOI2020 Day2T2 那样,记录每条链的底端要求在什么位置必须放关键点,DP 即可。

注意对于 u-LCA-v 链,关键点越浅越优,所以上面的贪心没有满足这样的链,那么在 \(1\) 放个关键点即可。

复杂度可以做到 \(\mathcal O(n)\)。

I. Mashtali vs Atcoder

不会证结论,咕了。

标签:匹配,17,题解,Global,合法,括号,考虑,关键点,贪心
来源: https://www.cnblogs.com/RiverHamster/p/cf1610.html

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

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

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

ICode9版权所有