做题笔记(CodeForces)

比赛补题

Codeforces Round 960 (Div. 2)

这次比赛可以看出最近的代码准确度又在下降,A - C 题不能快速的做出来,且一共吃了 6 发罚时,这说明了代码准确度练习较少已经到了非常严重的地步,最近难题看的较多又失去了对简单题的熟练度,其实也可以说明之前练的还不够,有一定的效果,但随着时间的推移有所反弹。

当然,心态可能也对考试时的发挥有所影响,在做前面的题目时有可能操之过急,导致了悲剧的发生。

计划:在 2024/07/21 - 2024-07/27 每天一场 CF EDU 暂时先不管难题,巩固基础为重,难题只是陪衬。值得一提的是不能排除晚上状态不好所造成的影响.

Educational Codeforces Round 162 (Rated for Div. 2)(CF1923)

彩笔 PMC 不会二分,距今 0 天,望周知。

A - C 简单

D

二分二分!!!

二分该在什么时候用?排过序,单调的就可以用!可以用在什么地方?前缀和!

考场上想错了两个点:

  • 只要两只史莱姆不是等价的,那么先向左吞,先向右吞是等价的。先考虑序列中相邻元素都不相同的情况,我们要求史莱姆 $i$ 的答案,定义 $l < i < r$ ,且 \sum_{l \le x < i} a_x > x_i\sum_{ia_i ,所有答案即为 \min\{i - l, r - i\}
  • 那如果有相邻的元素相同呢?考虑记录一个 $k$ :使得区间 $[i + 1, k)$ 均为相同元素,处理完后,对刚刚所求的答案取 $\max$ 。由于处理了 $k$ 的缘故,在答案为 $1$ 的时候需要特判,请读者自行思考。
  • 可以分开处理左边和右边的情况,写好一种情况后 reverse 即可。

处理 $k$ 的时间复杂度为 $O(n)$,第一步可以通过二分实现,总时间复杂度 $O(tn\log n)$

总结:此题巨大的数据范围暗示了使用 $\log n$ 的算法,前缀和数组是有序的,二分只能用于有序的情况,若数组中含负数则不行。

二分的常见场景:求最大值最小,最小值最大,有序数组中查找(这道题就是这个)。

Codeforces Round 925 (Div. 3)(CF1931)

A- D 简单

F

将题目条件转化一下,相当于就是给了一堆先后关系,考虑将前面的与后面的连边,也就是 $a{ij} \rightarrow a{ij+1}$ 连边,然后用拓扑判环,如果无环则有解,反之亦然。

总结:

  • 对于题目中有一堆关系时,可以互相连边,若有环,则说明了关系不成立。
  • ❓连边还适用于排序类问题。

G

四个拼图,其个数记为 $c_1,c_2,c_3,c_4$ ,分析拼图的凹凸性,只有拼图 1、2 会改变整个序列的凹凸性,且 1、2 拼图只能交替拼在一起。

那么可以得到,若 $|c_1-c_2| > 1$ 则问题无解,否则一定有解,而且拼图 3、4 并不会相互影响,我们可以进行分类讨论。

  • 若 $c_1 = c_2 = 0$ ,且 $c_3\neq 0 且 c_4 \neq 0$ ,则无解,否则方案数为 1。

  • 若 $c_1 = c_2$ ,有两种情况:

    1. 若 1 开头,那么 3 有 $c_1$ 个地方可以插入,4 有 $c_1 + 1$ 个地方可以插入,方案数为 $\binom{c_1+c_3-1}{c_1-1} \binom{c_2+c_4}{c_1}$ 。
    2. 若 2 开头,那么 3 有 $c_1 + 1$ 个地方可以插入,4 有 $c_1$ 个地方可以插入,方案数为 $\binom{c_1+c_3}{c_1} \binom{c_1+c_4-1}{c_1-1}$。

    总方案数为二者的和 $\binom{c_1+c_3-1}{c_1-1} \binom{c_2+c_4}{c_1} + \binom{c_1+c_3}{c_1}\binom{c_1+c_4-1}{c_1-1}$。

  • 若 $c_1 = c_2 + 1$ 拼好 1,2 只有一种方案,3,4 均有 $c_1$ 个地方可以插入,方案数为 $\binom{c_1+c_3 - 1}{c_1 - 1} \binom{c_1+c_4-1}{c_1-1}$。

  • 若 $c_1 = c_2 - 1$ 拼好 1,2 也只有一种方案, 3,4 均有 $c_1 + 1 $ 个地方可以插入,方案数为 $\binom{c_1+c_3}{c_1} \binom{c_1+c_4}{c_1}$。

预处理组合数,$O(1)$ 询问即可。

总结:

  • 若有无解的情况,可以先分析无解的情况。
  • 若某项事物对于某些性质没有改变,则无需在意,优先分析情况比较少且对某些性质(比如说有无解)有影响的。

杂题选做

837D Round Subset

一眼和 2、5 因数有关系。

额,然后就不会了。

我们定义 $p5$ 代表数字 5 的最大次幂,$p5(i)$ 代表数字 $i$ 5 次幂的数量;$p2$ 同理。

定义 $dp(i, j, k)$ 代表我们已经遍历了 $i$ 个数,选择了 $j$ 个所得到的 5 的次幂的数量为 $k$ ,所得到 $2$ 的次幂的最大值。这就是经典的背包问题。我们分为两种情况,列出如下转移方程。

  • $dp(i + 1, j + 1, k + p5(i)) = \max(dp(i + 1, j + 1, l + p5(i)), dp(i, j, k) + p2(i))$
  • $dp(i + 1, j, k) = max(dp(i + 1, j, k ), dp(i, j, k))$

因为一个 0 是由 一个 2 和 5 相乘得到的,最终的答案为 $\min(i, dp(n, k, i))$ ,这里的 $k$ 是题目中给定的 $k$ ,但是上文的不是,我懒得改了将就看
时间复杂度 $O(n^3)$

总结:分析性质,尝试将某些值看成贡献

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇