CF游记-Codeforces Round

比赛链接

人生第二次觉得CF的题还是可做的。目前只弄了5道,剩下一题咕着。

#A City Day

简单模拟,开心的话可以写个单调队列。

#B Water Lily

初中数学题,勾股定理。
$$
(x+H)^2=x^2+L^2 \ x=(L^2-H^2)/2H
$$

#C MP3

既然硬盘的大小是固定的,那么 $K$ 应该尽可能大。为了让 $K$ 尽可能大, $k$ 也要尽可能大。

所以:
$$
k=\lfloor(I*8)/n\rfloor \ K=2^k
$$
把 $K$ 求出来之后,我们实际上只需保留 $K$ 种不同的数字,并使删除的数字最少。

根据题意,我们只能删除最大的或最小的数。考虑对 $a$ 数组离散化,并用 $b$ 数组记录每个数值出现的次数。保留下来的数值一定是连续的$K$个,只需在 $b$数组上进行前缀和预处理,枚举保留的 $K$ 个数值位置即可。

#D Welfare State

非主流警告⚠

观察到只有一次查询,所以我们可以针对每个位置,求出当前位置在经过 $q$ 次操作后的值并输出。

先来看两个结论:

可以忽略对当前位置的最后一次一号操作之前的所有操作。

管你之前被改成什么了,经过一次一号操作就得重新来过。

对于连续的几次二号操作,只需保留 $x$ 最大的那一次操作。

废话。

本题中二号操作是针对整体的,所以考虑开数组 $s$ 记录所有二号操作的后缀最大值。在针对每一位置进行计算时,只需将最后一次一号操作之前的操作删除后,与二号操作的后缀最大值比较即可得出答案。

#E Matching vs Independent Set
#F Rectangle Painting 1

超水的一道 F 题!

$f[x1][y1][x2][y2]$表示将一个矩形全部涂成白色的最小费用,状态转移考虑由两个子矩形合并或将一整块上色即可。

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×