AGC059 题解 (不含 F)
去年的比赛拖到今年发了呢...
Atcoder Proving Contest
A. My Last ABC Problem (2000)
场上打表找规律找了半天
考虑如何处理单个询问。
显然连续相同字母可以缩起来(即不会在段内分割),设段数为 。
对于一次操作 ,显然 内的段数不会减少, 及 的段数也不会减少,减少的只有可能是 之间及 之间。每次至多减少 段,故答案有下界 。
结论:当 时,一定存在 使得操作后减少 段。
证明
不妨设 。
- 若 ,则取 ;
- 若 ,则取 ;
- 否则 。
- 若 ,则取 。
- 若 ,则取 ;
观察发现 时需要 或 次操作, 时必须要 次操作。
于是当 为偶数时答案为 , 为奇数时答案为 或 。
结论:当 时,答案为 ,否则为 。
证明
容易发现在操作过程中 与 始终不变。故当 缩减到 时,若初始 则有答案 ;否则有下界 ,又由于任何最优策略必定会缩减为此情况,故这也是上界,证毕。即答案为 。
对于多组询问,前缀和预处理即可。总时间复杂度 。
B. Arrange Your Balls (1900)
B < A
设出现的颜色种类数为 ,记 表示题目中的相邻颜色对种类数。
首先可以给出一种 的构造:将相同颜色的球全放在一起。
结论:。
证明
构建一个无向图,对于所有相邻颜色对 ,连边 。显然该无向图是联通的,故(去重边后的)边数 ,证毕。结论:当 时,。
证明
如果无向图(去重边后)是棵树,那么环上的顺序相当于图的一个欧拉回路,故所有点入度为偶数,可以归纳得到树上每条边对应的重边数量均为偶数,即每条重边至少出现 次。故 ,证毕。事实上,当 时一定存在一组 的解,下面给出构造。
-
如果所有颜色都出现至少两次,就直接把所有颜色套起来。
-
先拿一个只出现一次的颜色定为第一个,断环为链,将指针设置为它后面的位置。
-
对于一种有 个球的颜色,将 个球全部放在指针位置,再在前面的 个空隙中放入只出现一次的颜色,最后将指针设为最后一个空隙。
-
最后剩下一个球放入指针位置。
注意到有 个球的颜色会带来 个空隙(只出现一次的颜色则消耗 个空隙),上述过程中 ,故方案合法。
总时间复杂度 。
C. Guessing Permutation for as Long as Possible (2900)
结论:对于排列 和 , 可以被跳过当且仅当存在 和 使得 且 (或者全部大于)。
证明
充分性显然,考虑证必要性。记 ,不妨设 。考虑 使得 ,记 。若 与 不能均问过(否则违背前提),不妨设没有问过 。则可以将位置介于 的数中与 通过连边联通的和 一同移动到 的右端,这样新的排列 仍然合法。
重复这样的操作,最后得到的排列中 与 间没有介于 的数。此时调换 与 仍然合法,代表 与 的大小关系无法确定,证毕。
结论:排列 合法当且仅当对所有 上述条件在 时成立。
证明
考虑 的条件成立的情况。如果已经问过 ,则将 和 缩成 ,;否则之后在询问 时就变为 的情况,能判定排列 不合法。证毕。有了这个结论,问题就变成了有 个有序三元组限制,求有多少个排列 使对所有限制 都有 。遗憾的是这个加强后的问题没有什么好办法解决。
维护一张有 个点的无向图。倒序考虑每个询问 ,连边 。
注意到,如果加入 时 与 并不连通,对于一个与 均不连通的点 ,由于前面一定询问过 及 ,故会产生限制 。假设 (或 )所在的连通块在排列中的值域相邻,则说明这两块在排列中的值域相邻,显然可以归纳证得。
即建出一棵类似 Kruskal 重构树的二叉树(每个点有 或 个儿子),那么合法的排列 只能这样得到:
- 对于每个非叶节点,可以将它的左右子树交换。
- 中序遍历所有叶节点,得到排列。
记 表示是否交换 的左右子树。那么对于剩下的限制 ,记 为 的 LCA:
- 若 的左右子树内分别含有 及 ,则限制必定被满足。
- 否则不妨设 的左右子树内分别含有 及 ,记 为 的 LCA。若 在 的左子树内,则有 ;否则 。
把每个 及 看作点,对限制连边再遍历一遍即可,如果限制有矛盾则答案为 ;否则设连通块数量为 ,则答案为 。
时间复杂度 。
D. Distinct Elements on Subsegments (3300)
首先能注意到若有解则 ,同时当其取等时会获得对 及 的限制。
记 表示 是否在 中出现过, 表示 是否在 中出现过,于是有 。
边界:,。
结论:设 中值为 的位置从小到大为 , 中值为 的位置从小到大为 ,若有解则 且 。
证明
对每种颜色 ,设 中 的位置从小到大为 ,则对于所有满足 ,。于是 且存在一组 与 间的匹配使得每一对 满足 。显然交叉匹配的调换匹配仍然合法,故可调整为顺序匹配,证毕。事实上,只要 及 满足上述条件,就可以构造一组合法的 :
- 设 。从前往后确定每个 :
- 若 ,则令 。
- 若 ,设与 匹配的 为 ,则令 。
还剩下最后一个问题:如何由 得到合法的 及 ?
由于 ,故当 时已经确定,问题是 时如何决策。
结论:若有解,则下面的构造方式一定合法:对于所有 ,若 ,则令 ;否则令 。对于 及 , 的总数已确定,尽量靠中间放。
证明
考虑任意一组合法的 及 ,若存在 且 ,将其调整为 。由于存在解使得 且 ,故该解满足 中有两个相同的数 。那么将原匹配 改为匹配 及 ,由之前的结论得 仍然合法。证毕。
那么按照上面的策略两步构造即可,时间复杂度 。
E. Grid 3-coloring (3800)
神奇脑洞题,甚至没有 C,D 复杂
先将 分别替换为 。
结论:对于一个合法的矩阵 ,存在唯一的矩阵 使得:
- 。
- 。
- ,。
证明
按 字典序升序填数:-
若 (或 ),若 ,令 ;否则令 。显然填法唯一。
-
否则,若 ,按上述方式填;否则令 。显然填法唯一。
题目给出了边框上的 值,用上述方式可以确定这些位置的 值(如果已经矛盾则无解)。
有解的一个必要条件是对于所有 。
神奇的是,这也是充分条件!直接令 。考虑 ,由于取 内的四个值均增加了 ,故 ,故合法。
时间复杂度 。
F. LIDS (???)
又是 Anton 的神秘计数题(上一场在 AGC055F),什么时候有闲心了再看
本文作者:苹果蓝17
本文链接:https://www.cnblogs.com/Appleblue17/p/17019258.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-01-01 凸包与动态规划——浅谈斜率优化与 wqs 带权二分