ARC148游记
ARC148游记
问:打 atcoder 的比赛有什么好处?
答:虽然不一定能上分,但是至少基本不会 unrated 。。。
CF 我最近打了三次,两次可以上大分的场次 unrated ,一次只能上一点分的没有 unrated ,我反正是无语了/kk
这场貌似是“模”场,场上只会前 ABCD ,赛后被舍友点醒会了 E 。
ABC 题解懒得写了, F 造计算机不会爬了。
D - mod M Game
场上猜结论猜出来的(不然就要下大分了呜呜呜),不过猜出来后也比较好证。
题意
场上 个整数, Alice Bob 轮流取数, Alice 先手,如果最终 Alice 取出数的和在模 意义下和 Bob 取出来数的和相等,那么 Bob 获胜,否则 Alice 获胜。
。
题解
尽量写下思考过程。
考虑最后只剩两个数了,此时 Alice 先取,假设 Alice 之前取的数和为 , Bob 为 ,剩下两个数 ,那么 Bob 要赢当且仅当 并且 ,即 ,于是我们得出最后剩下两个数 Bob 获胜的必要条件是 ,不妨我们认为这样的 是“配对的”。
自然想到配对的数会成对拿走。 配对要么 ,要么 ,先把第一种情况的全部两两配对拿走,对于第二种情况,我们知道这样的对数每加一,那么 Alice Bob 间的差距就会增加 ,所以这样的对数必须是偶数对。
于是我们大胆猜测: Bob 获胜当且仅当在删除两两相同数后剩下的数的个数是 的倍数且可以通过以上配对规则两两配对。
证明就很简单了,只需要构造必胜方案,如果 Bob 必胜,按照配对思想先配好对, Alice 拿哪个 Bob 就拿它的配对数,这样 Bob 可以保证每组配对数两人都拿到恰好其中一个,它们的和必然相等。
如果 Alice 必胜,还是先把相同的数两两配对,剩下的数按规则配对:如果全部配对成功那么 Alice 类似上述 Bob 的策略可以每组配对数两人都拿到恰好其中一个,它们的和必然差 ;如果仅部分配对成功,那么 Alice 只需要关注配对不成功的数,利用自己的先手优势可以控制配对不成功的数中 Alice 拿到的数与 Bob 拿到的数之差必然不能补齐哪些配对成功的数造成的两人之差(这个差值可能是 或者 ),具体策略是如果配对不成功的数的数量不止两个, Alice 就从里面任意拿,之后 Alice 的行动根据 Bob ,如果 Bob 拿可配对的数,那么 Alice 就拿它的配对数,如果 Bob 拿不可配对的数,那么 Alice 也拿不可配对的数,直到不可配对的数中仅剩两个 , Alice 显然可以预测到配对数全拿完后两人数的差,如果 Alice 选 会导致失败,那么 Alice 拿 就可以了,因为拿 和拿 会导致最后两人数的差不相同。
E - ≥ K
题意
给定 个数的序列 和一个整数 ,问有多少个 的排列满足任意相邻数之和大于等于 。答案对 取模。
。
题解
好妙的题,可惜太菜场上不会。。。
首先序列就十分不优美,与开头数和末尾数相邻的数都只有一个,于是我们增加一个 放在头尾之间形成环,于是所有数相邻的数都有两个而且不会算重。
将所有数分成两类,一类小于 ,一类大于等于 ,小于 的数相邻两个数必然大于 ,我们考虑这里面的最小值,选择两个数放在它的前面和后面使得这两处相邻合法,然后就可以将这三个数视为一体,容易发现这三个数组成的整体放在任意位置都行,因为没有比最小的数还小的数了,于是我们删除这三个数加入一个新数 ,然后继续考虑最小值即可,容易发现这种考虑顺序计算方案直接乘法原理即可。
当最小值大于等于 时,此时场上剩下的所有数都可以任意排了,于是就是个圆排列了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!