CF204 合集
云落碎碎念
- 题面翻译取自 luogu,本蒟蒻也会安置原题链接
- 不保证文章中不出现“显然”或者“注意到”,可能会出现“易证”
- 有写错的地方欢迎各位神犇指正
前言
你在我的时间轴上,是一段有后效性的前缀
CF204A
题解
前缀差分,直接做
细节处理
注意最高位不要溢出
CF204B
题解
考虑对颜色开个桶,对于所有有能力成为绝对众数的颜色,统计答案
细节处理
正反面颜色相同的部分在桶中只计算一次
CF204C
题解
披着字符串题面的 DP 题
我们枚举 \(i,j\),并钦定 \(x_i=y_j\),统计哪些子串会给出 \(x_i=y_j\) 的贡献,形式化表示出来,有:
这玩意是 \(O(n^2)\) 的,然而可以维护前缀桶和后缀桶,即记录 \(pre_{i,c}\) 表示前缀 \([1,i]\) 中所有满足 \(x_i=c\) 的 \(i\) 的和,\(suf\) 同理
优化一下就 \(O(n)\) 了
细节处理
又是被 2000 分薄纱的一天
CF204D
题解
简单 DP,要是 NOIP 或者 CSP 出这种题就可以笑出来了
记 \(f_i\) 表示第 \([i-k+1,i]\) 为第一次出现连续的 B 的方案数
显然 \([i-k+1,i]\) 的填法已经固定,所以考虑前缀 \([1,i-k]\) 的填法
正难则反,直接用随便填的方案数刨去在前缀已经合法的。总方案数记为 \(tot_i\),已经合法的记为 \(g_i\),有转移
其中 \([s_i = \texttt{X}]\) 表示字符串的第 \(i\) 位是否为字符 X
而 \(f\) 的转移如果是简单的 \(f_i=tot_{i-k} - g_{i-k}\) 就 WA 了
因为你还得保证对于 \(\forall j \in [i-k+1,i-1] ,\ s[j-k+1...j]\) 不是全 B
所以还需要刨去上述的方案,即 \(\sum_{j=i-k+1}^{i-1} f_j\),结合前面的分析,\(f\) 的转移形如
前缀和优化一下可以做到线性,对于 W 来说,反着做一遍类似的事情就可以了
答案也是好维护滴!
细节处理
感觉没什么,需要什么信息就记录,然后跟着 \(f\) 转移就好了
CF204E
题解
无聊题,广姓算法加线段树合并
细节处理
啧
后记
考虑时光倒流,我可以维护你出现的时间戳
完结撒花!

浙公网安备 33010602011771号