ABC 比赛记录

主播荔枝打比赛不用 ai

R441

ABCDEF
1610 perf
rnk 1033

D

有意思。赛时不会。

考虑题目中给的出度 \(\le 4\)。以及 \(L \le 10\)。直接暴力即可。总的时间复杂度 \(O(4^{10})\)。轻松通过。

E

手刃了。树状数组板子。

考虑怎么做到线性?

原来的做法不太能做。考虑递推。由第 \(i - 1\) 位的答案递推第 \(i\) 位的答案。考虑 \(S_i\)

  • \(S_i = 1\)。此时对于前面满足条件的区间我们都满足。同时前面 \(0,1\) 相等的区间也满足。
  • \(S_i = 0\)。此时前面 \(1\)\(0\)\(1\) 的区间不满足。其余前面满足的区间都满足,扣掉就好了。

那么就是线性的。

F

好题啊。

只要对于每个物品,求出选它 / 不选它能达到的最大价值。

这个可以分别做前缀 / 后缀背包。

R443

ABCDEF
2141 perf
rnk 191

D

神秘贪心结论题。

对于每个棋子,尽量地不去动它能使操作数最小。

\(a_i\) 为棋子 \(i\) 的初始位置,\(b_i\) 为最终位置。只需最大化 \(\sum b_i\)

考虑一下约束。需要使得 \(b_i \le a_i\),$b_i \le b_{i+1} + 1 $ 且 \(b_{i+1} \le b_i + 1\)

于是 \(b_i = \min(a_i,b_{i-1}+1,b_{i+1}+1)\)。左到右跑使得 \(b_i \le b_{i-1} + 1\),右到左跑维护后者即可。

线性。

E

简单题。每个点按题意暴力地扩展。判断某个墙是否能被爆破只需维护那一列的所有墙。如果在尾端就能并弹出即可。

\(O(n^2)\)

F

板子。bfs 队列里放余数和最后的数字。扩展是简单的。注意记忆化一下。那就是 \(O(10n)\) 的。

可以证明只要不是 \(10\) 的倍数总是有解的。

R444

ABCDE
1413 perf
rnk 1770 鉴定为被 CEF 创飞导致的。

D

差分一下然后处理一下进位就好了。

E

妙妙题。一开始看错题想了挺久的。

注意到对于每个左端点 \(l\),与它满足条件的右端点 \(r\) 总是一段的。也就是说,找到最后一个满足条件的 \(r\),有 \([l, r], [l, l + 1], \cdots, [l, r]\) 均满足条件。

于是可以双指针,每次加入一个数时用 set 判一下是否满足条件即可。\(O(n \log n)\)

F

不会。

R461

ABCDE
1616 perf
rnk 1157

二十多场没打 /dk

D

无敌了,还以为是什么神秘单调性题目,结果 \(O(n^3\log n)\) 直接过了。无敌了。

具体就是枚举左下角的点,再确定左上方点的 \(y\) 值,这样二分 \(x\) 即可。二分得到一段 \(x\),使得和为 \(K\)。简单计数。

双指针也是容易的。只需要维护 \(\le K\)\(\ge K\) 的位置,这个容易单调维护。于是做到 \(O(n^3)\)

E

ds 题。做了很久才过,大失败。

考虑操作 \(1\),横着涂一行黑的会改变什么。如果是第一次涂这一行,贡献显然就是 \(n\)。但是如果不是呢?不妨记上一次涂这一行的时刻为 \(j\),当前时刻为 \(i\)。那么时刻 \(j \sim i\) 中有多少列被涂白了,这一次操作就会把它们变成黑的。贡献就是这个列数。

那么问题转化为求时刻 \(j \sim i\) 中,有多少列被涂白了,注意要去重。操作 \(2\) 的贡献也是同理的。\(j\) 是很好维护的,维护第 \(p\) 行,第 \(q\) 列上一次涂的时间 \(r_{p},c_{q}\) 即可。那么可以把询问序列离线下来然后扫描线用树状数组算。

F

这个题,有点牛福的。
查表得知 \(n\) 的因子个数最大值为 \(2304\),记 \(D = 2304\)。考虑 dp。
按因子从小到大选,然后因为不同顺序的序列要算多次,最后还要乘上选的数个数的阶乘。记 \(f_{i,j,k}\) 表示前 \(i\) 个因子,选了 \(j\) 个,得到的积为 \(k\) 的答案,\(g_{i,j,k}\) 表示方案数。这里的 \(k\) 是一个映射。考虑怎么转移:
判断第 \(i\) 个因子 \(d_i\) 是否满足 \(d_i \mid k\)

  1. 不是。此时不能选,\(f_{i,j,k} = f_{i-1,j,k}\)\(g_{i,j,k} = g_{i-1,j,k}\)
  2. 是。考虑选不选,\(f_{i,j,k} = f_{i-1,j,k} + f_{i-1,j-1,\frac{k}{d_i}} + d_i \times g_{i-1,j-1,\frac{k}{d_i}}\)\(g_{i,j,k} = g_{i-1,j,k} + g_{i-1,j-1,\frac{k}{d_i}}\)

那么做完了。由于 \(i\)\(k\)\(D\) 的量级,\(j\)\(\log n\) 的量级,时间复杂度就是 \(O(D^2\log n)\)

posted @ 2026-05-23 18:59  RainyRadio  阅读(6)  评论(0)    收藏  举报