AtCoder Regular Contest 149
1|0Preface
最近国庆在外面玩的有点high啊,欠了一篇AT和两篇CF没写,今天先浅浅写一下这场
当时10.2号在外面玩得有点晚了,到寝室刚好比赛开始,晚饭都没吃就开干了
主要是C写的太久了,而且挂了一发之后看了好久才发现的情形没处理好
然后40min做D没做出来,鉴定为纯纯的FW(话说原来ARC这么难的吗,感觉比以前的一些AGC还难)
2|0A - Repdigit Number
送分题,暴力枚举每一种情况判断即可
3|0B - Two LIS Sum
一眼猜结论题,不难发现我们将排成时答案一定不会变劣,因此在此基础上求出的LIS即可
4|0C - Avoid Prime Sum
又是比较显然的构造题,不难发现奇数+奇数、偶数+偶数的和一定为合数,因此我们考虑尽可能地让奇数之间,偶数之间尽量邻近在一起
因此就有一个naive的想法,根据的奇偶性把棋盘分成两个部分(如下图),每个部分各自填奇数和偶数,然后只要考虑交界处的情况了
偶数的情况比较容易,只要找到一个奇数且不是质数的数然后拆分一下即可,但奇数时要讨论最中间的奇数要和两个偶数之和为合数
可能我的实现比较渣,代码量挺大,而且还需要特判的情况(话说我的情况手玩玩不出来最后还是暴枚出来的)
后来看了眼官方sol发现可以直接用的倍数来构造,这样大大降低了代码复杂度
5|0D - Simultaneous Sugoroku
当时比赛的时候想的方向有点偏了,结果G了
首先我们直接考虑所有的的pieces,然后可以发现一个重要的性质:
对于两个位置的pieces,它们如果到达原点那时间必然时相同的,若无法到达最后的位置关于原点对称
初始时所有的pieces都在一个半轴上,不难发现在每次移动后就可能会出现正负半轴上都有pieces的情况
但我们利用上面的性质,总是可以把其中那个pieces数量较少的半轴上的pieces全部合并到另一个半轴上去,具体地我们可以连一条边在这两个点之间(可以看下图帮助理解)
然后每次有piece到达原点的时候统计答案即可,最后所有点之间构成了一个森林,更新答案即可
6|0E - Sliding Window Sort
好棒的思维题,感觉好久没做到过这种像做AGC一样沁人心脾的题目了(话说现在的ARC就是以前AGC了吧)
首先考虑把问题转化一下,原来的操作是先给一个区间排序,然后再把窗口右移一格,现在我们把窗口固定下来,然后把数列左移一格,比如样例1:
现在我们考虑简化问题,把数列分成左边的个元素和右边的个元素
当执行了一次或更多次操作后,左边的个元素是单调上升的,因此我们可以把这部分元素用一个集合来看待
现在问题转化为这样,有一个个元素的集合和一个有个元素的序列,每次操作我们可以把序列中最左侧的元素移到集合里,然后把集合里最小的元素移动到序列的最右侧
比如对于前面的样例有:
接下来由于的范围很大,因此我们考虑缩小它的范围,不难发现当时集合中的元素就是,此时序列中的元素对集合不会造成任何影响,因此只需要考虑序列的情况
不难发现我们把多余的操作次数移动直接计算掉即可,而是更加简单了,序列中有一部分元素不可能被用到,直接把它们删掉即可
那么现在问题变成对于集合(若不为这个答案显然就是)和序列,我们需要统计出初始的状态满足以下条件:
- 在中存在某个数等于
- 在中存在某个数等于
- 在中存在某个数等于
但是我们考虑到若,则的值只能是,因为前面的所有数都一定大于等于,因此只能让它来等于
这样我们假设剔除了这些确定的后序列中待定的数有个,由于以上的每一个局面都是在个数中选一个等于,因此总方案数为
最后由于第一次排序之前集合中的元素可以随意排列,因此答案要再乘上
真是一道妙题!
7|0Postscript
最后把这场结了吧,最近开的坑好多但都没时间补,主要是线下上课了时间变得少了很多
F的难度对于现在的我来说还是太吃力了点,先跑路了
__EOF__

本文链接:https://www.cnblogs.com/cjjsb/p/16754829.html
关于博主:复活的ACM新生,目前爱好仅剩Gal/HBR/雀魂/单机/OSU
版权声明:转载请注明出处
声援博主:欢迎加QQ:2649020702来DD我
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通