Codeforces Round #833 (Div. 2)
1|0Preface
我是大FW,B因为本地调试的时候把数组大小改成200忘记该回去了浪费了很多时间和罚时
C刚开始也没想清楚WA了两发心态爆炸,然后D其实想出了一种做法但是心态崩了就没写了
又是掉分我感觉有点难顶
2|0A. The Ultimate Square
一个SB题给我做的巨蠢,直接输出即可,但是我写的是个什么鬼我也不知道
3|0B. Diverse Substrings
因为数的种类只有10种,根据抽屉原理,一个区间的长度最多为,因此直接暴力做即可
4|0C. Zero-Sum Prefixes
首先求出原序列的前缀和,考虑被分开的每段区间,不难发现这个区间前面的改成这个区间里出现次数最多的即可
但是要注意开头的那个前面没有的区间的情况要特别考虑,以及最后留下的一个单独的结尾的情况
5|0D. ConstructOR
比赛的时候想了个算法以为是假的就没写,后来发现是对的(虽然我不会证正确性)
就是先考虑的后位,我们令,这样两个数的限制就变成一个了,记
接下来考虑前位,相当于解方程,直接上扩欧即可,代码我没写
考虑一种科学的做法,我们发现若中有一个为奇数,而为偶数时显然是无解的
否则说明最低位都是,原问题转化为之间的问题
因此我们设表示的二进制表示中最低位的出现的位置,则时无解
考虑有解的情况,我们从低到高考虑每一个为而为的位,把答案加上即可(为当前位与的差值)
6|0E. Yet Another Array Counting Problem
论你能不能想到笛卡尔树
今天补题的时候刚打开Tutorial结果看到笛卡尔树就知道怎么做了
原来的题目要求就是的笛卡尔树同构,直接来个DP,设表示树上点的权值为时的方案数
转移的话设,则,注意左子树因为出现在前面因此不能等于,而右子树就可以等于
7|0F. Circular Xor Reversal
人类智慧构造题,想破脑袋也想不出来只能去看Tutorial
考虑定义一种操作,可以把的前半部分异或上后半部分的翻转,具体的:
注意由于序列是循环的,因此是合法的,只要在模意义下处理下标即可,同时我们记
不难发现当为偶数时,执行后即可实现翻转序列
而当为奇数时,执行即可
考虑处理,为了方便表示我们用表示
首先考虑从依次操作,得到
然后从依次操作,得到
然后我们对重复上面的过程,得到
然后从即可得到,完成了上述构造
考虑它的操作次数,为,因此符合题意
8|0Postscript
下场找ztc和我一起打,感觉我们EZ这一届选择打ACM的好少(除了LTL和XZY两个和XYZ组成QZEZ代表队的巨佬)
现在就是写题很容易思路不清犯个SB错误,然后一下看不出来心态爆炸直接GG
连掉5场了真掉不起了呜呜呜
__EOF__

本文链接:https://www.cnblogs.com/cjjsb/p/16890479.html
关于博主:复活的ACM新生,目前爱好仅剩Gal/HBR/雀魂/单机/OSU
版权声明:转载请注明出处
声援博主:欢迎加QQ:2649020702来DD我
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
2019-11-14 Codeforces Round #594 (Div. 1)
2018-11-14 在平衡树的海洋中畅游(四)——FHQ Treap