凸序列 (min,+) 卷积后还是凸的。

谁的哀鸣在指引?

这里应当有一些锐评,可能会在不知道什么时候补上。

A.魔法少女

不会做,队友太强了。

B.栈

注意到只需保留栈顶的 \(O(n)\) 个数即可。

add(sum,-q.back),获得一堆罚时,望周知。

C.炉石传说

写成一元二次方程的形式,根据顶点式 \((-\frac b{2a},\frac{4ac-b^2}{4a})\),分类讨论一下即可。

D.找方向

直接做。

E.简单题

任取 \(n\) 个不同质数 \(p_1,p_2,\dots,p_n\),注意到 \(p_i\times i\) 是一组合法的构造。

F.贪吃蛇

不会做。

G.叠叠乐

注意到最多放 \(\log\) 个数,直接做即可。

H.寄存器

不想读题。

I.双线程执行器

很好啊!

按照价值从小到大排序,\(f_{i,j}\) 表示前 \(i\)\(j\) 个尚未匹配的代价。关键性质是 \(f_i\) 关于 \(j\) 具有单调性,

后面先咕一下,总之推一下然后可以单调队列优化!

J.博弈

注意到若能取胜,必然会在一个回合内取胜。

K.等价交换

注意到答案为 \(\max(n-m,1)\)

L.红黑树

现场赛过了 19 个队,ucup 过了 109 个队。

首先考虑暴力 dp,\(f_{i,j}\) 代表 \(i\) 的子树内每条 \(i\to leaf\) 的路径都有 \(j\) 个黑点的方案数。转移的形式比较漂亮,是子树做点乘,启发人去往线段树合并之类的东西上去想,不过加入子树根这个步骤用线段树合并没法维护。注意到数组长度为子树深度,考虑长链剖分,刘海峰论文中指出了经典结论,所有短儿子的高度和是 \(O(n)\) 的。所以长链剖分后对于所有儿子暴力合并 dp 数组的复杂度是 \(O(n)\) 的。但是注意到如果一个点只有一个儿子,那么这个复杂度就会被破坏。

只有一个儿子的点的答案等于其儿子的答案,因此考虑不对这个点处理出 dp 数组。等到需要用的时候直接利用其儿子的信息,这样查询在进行 \(v_i\leftarrow v_i+i\) 的套路处理后等价于查询 rmq,倍增处理即可。注意到除此之外,还需要把每条长链的链顶都处理好,时间复杂度 \(O(n\log n)\)

注意到上文没有利用到长链剖分的任何性质,所以直接瞎剖分即可。

南京站的官方题解利用 dp 数组的凸性做到线性,非常好写,不过无所谓了。

posted @ 2025-08-04 21:04  BYR_KKK  阅读(31)  评论(0)    收藏  举报