Codeforces Round 860 (Div. 2)
1|0Preface
两三天没写题了小小的补一下题
结果这场意外地很合胃口,1h不到就把A-E做完了,而且除了忘记初始化这种一眼丁真的错误好像也没写挂
可惜当时懒了周日晚上就不打了(主要去考模拟六级了回来太累了),不然狠狠地上分
2|0A. Showstopper
稍加观察就可以发现我们令所有的均小于等于再验证即可
3|0B. Three Sevens
一眼倒着做,每次随便找一个在之后没出现过的数并指定它为胜者即可
4|0C. Candy Store
刚开始naive了想了一种合并糖果的方法,然后WA了一发后猛然悔悟
首先不难发现问题具有贪心性,对于固定的左端点,我们肯定是尽量地向右延伸区间
那么考虑如何验证一个区间是否合法,不难发现设最后标价至少是的倍数
同时若假设我们令,则对于,均要满足,不难发现这等价于
然后就很trivial了,我们再记一个,然后只要看是否为的因子即可
5|0D. Shocking Arrangement
简单构造题,触发被动——构造题精通
首先不难发现右边是个定值,记这个极差为,然后看到这个限制,第一反应就是根据之前做过的某个构造题的结论,一定可以构造一个序列使得其前缀和数组的值始终大于
再接着考虑一段子段和其实就是两个前缀和的差值,因此我们很容易想到只要让前缀和始终小于极差即可
具体的构造过程如下,我们先把正数和负数分别按绝对值从大到小排个序,然后每次加入一个还未处理的最大的正数
若此时整个序列的前缀和大于等于极差,则一直往里面放还未处理的最小的负数,只要其小于极差或者说明无解
这个做法的正确性显然,因为前缀和中最大值不可能超过极差,同时这般构造出的数列的前缀和一定都是大于等于的
6|0E. Multitest Generator
首先不难发现答案肯定只有,因为我们只要把第一个数改成然后把第二个数改成对应的长度就肯定可以构造出一个答案为的解
同时答案为的情况是很trivial的,那么现在问题就是如何判断的答案是否为,大致可以分为两类:
- 修改第一个数,此时需要满足为连续的若干个
test
- 修改中的某个数使得,其实需要满足为若干个(设为个)
test
,且为若干个(设为个)test
,且要求
然后考虑如何实现,很容易想到用倒着用DP来维护:
- 令表示某段后缀可以是否为若干个连续的
test
,若是则记录个数 - 令表示的后缀最大值,即
- 令表示以开头,向后跳最多能得到多少个
test
(注意与的细微差别) - 令表示以开头,在向后跳了若干个
test
(设为个)来到位置后,的最大值
其它的都很容易理解,就是这个的定义看起来比较抽象,其实想一想很好理解
我们在计算上面的第二个条件时,所有的方案都可以被归结为两类,一类是从最后往前然后修改前面一部分的,一类是从前往后然后修改中间一部分的
而如果只用的话就会遗漏掉修改中间某段的部分,因此需要定义这样一个奇怪的东西
不过一码归一码这些东西的转移都非常简单,看一下代码就一眼便知了的说
7|0F. Gifts from Grandfather Ahmed
其实看到题之后大概隐隐能猜到利用贪心的思想先做小的,但不知道正确性就不敢写
然后去看了Tutorial才发现要用一个叫Erdős–Ginzburg–Ziv theorem的东西,算是涨知识了
这个定理的大概意思就是对于任意正整数,我们总可以在任意的个正整数中找出个时的它们的和是的倍数
大致思路就是先证对于所有为质数的情况,在证若时成立,则对于亦成立,具体证明这里不赘述了看上面的论文吧
然后我们就很容易想到,我们把所有的从小到大排序,然后我们分别按序处理
不难发现当我们处理时,剩下的boxes的数目为,由于,这个加和是一定大于等于的
因此我们总能对于前个class找到一种合法的分配,然后对于最后一个教室由于有一个可以随便分的,也是很trivial的
那么现在问题就是如何构造解了,显然可以通过一个很simple的DP来实现
设表示在前个数中,选出个使得它们的和模的余数为的方案是否存在,然后由于又要考虑到构造方案,我们再设一个意义和类似但是要求强制选这个数
因此总复杂度大概就是的,不过DP的时候很多都跑不满(或许这个总复杂度可能就是的?),也是能很轻松地跑过的
8|0Postscript
本来这周三有下午场的CF,可惜我一个礼拜就那天有课打不了了
不过周五的晚间场还是可以尝试遛一遛的说(虽然第二天还有校赛的初赛,不过如果只是混个复赛资格应该问题不大的说)
__EOF__

本文链接:https://www.cnblogs.com/cjjsb/p/17271429.html
关于博主:复活的ACM新生,目前爱好仅剩Gal/HBR/雀魂/单机/OSU
版权声明:转载请注明出处
声援博主:欢迎加QQ:2649020702来DD我
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2018-03-30 POJ 1459&&3436