「Log」2023.11.30 小记

序幕

\(\text{6:40}\):准时到校,整博客。

今天没带吃的,点份早饭吃。

今天依然是杂题日,随机刷杂题。

想了一会一点思路没有,看看标签,发现有个向量。

不对劲,果断点开题解,果然是神秘题。

边看边吃早饭,吃完了还是没看懂。

突然昏迷。

\(\text{9:10}\):苏醒,继续看题解。

突然继续昏迷。

\(\text{11:00}\):苏醒。

冬天真的太想睡觉了……

去上了个体育课精神精神。

冻得脸麻了,赶紧回机房午休。

上午约等于没学习,给我抓紧啊喂!

\(\text{13:30}\):开始继续看题解。

\(\color{blueviolet}{CF10E}\)

不得不说这题太神秘了。

考虑贪心什么时候是错误的。假设贪心会选择 \(a_i\),然后选择 \(a_j\),存在一种更优情况一定是选择两者之间的某一个值进行拼凑,然后枚举 \(i, j\) 尽量小的构造即可。

证明过程很神秘,略了。

间幕 \(1\)

接着开题,读完题感觉是个状压,但感觉转移是很神秘的,没啥思路果断看题解。

预处理一群一群的转移就可以了,确实有点神秘。

\(\color{blueviolet}{CF543C}\)

状压是显著的,设 \(f_i\) 表示达到状态 \(i\) 时的最小花费,其中状态表示每一个字符串是否存在一位不同。

考虑对于一个 \(f_i\) 进行向下转移,找到第一个不合法字符串 \(now\),有两种转移方式,第一种是改这个字符串使得其合法,第二种是改一群某位相同的字符串,使得这一群字符串合法。

第一种转移是显然的,第二种考虑预处理一个 \(g_{i, j}\) 表示将第 \(j\) 位与第 \(i\) 个字符串相等的一群字符串都改合法的方案,显然是不改花费最大的那个,预处理是简单的。

间幕 \(2\)

点杯饮料,小摆一会,换了套壁纸。

接着开题。

先转化了下题意,然后感觉套个二分就行了。

\(\color{blueviolet}{CF555B}\)

题意转化为给定一些点和区间,一个点可以覆盖至多一个它所在的区间,每个区间至少被一个点覆盖,问是否有覆盖方案。

把区间按照右端点排序,然后在 set 里二分合法最靠左点来覆盖区间,找不到就是无解。

间幕 \(3\)

吃完晚饭又开始昏迷。

十九点苏醒。

随机开题写一写。

\(\color{blueviolet}{CF442C}\)

首先有一个显著的结论,如果一个数两边都比它大,那么删去这个数是最优的,于是可以用单调栈维护第一步。

删完之后得到一个单峰序列,最优方案经过手玩可以得出是取最大次大外的所有的贡献,这两个数永远取不到。

间幕 \(4\)

开摆了,随机游走。

老师推荐了一道数位 DP,非常的反套路。

小颓,然后速通了这个数位 DP。

\(\color{blueviolet}{CF833C}\)

没法前缀作差,考虑其他做法。

发现了不同的数的个数一共不多,所以可以枚举所有数并进行判断是否在区间内。

间幕 CF 1903

回家睡觉,然后起床打阴间场 CF,Zpair 上来把 D1 秒了,从高位向低位算贡献即可。

A 题没啥水平,B 题有点水平,考虑把所有一个数的或和都与起来,假设当前数字就是这个,最后验证一下。

我也不知道为啥是对的,但是就是对的。

C 题最开始还以为斜率优化,原来是式子错了。

考虑做个后缀和,每次操作相当于选择一个后缀和加入贡献,特殊地,第一项必须加入贡献,然后能加正的就加就完事了。

D2 和 E 有点思路,但不多,三点下播。

尾声

睡大觉。

posted @ 2023-12-01 07:48  Eon_Sky  阅读(7)  评论(0编辑  收藏  举报