CF1998 div2 & abc366

1 CF

1.1 B

被诈骗了。我们的构造要向“每个区间只有 1 个数不一样考虑”。

1.2 C

比较难。但是出的好。

注意到如果我们不删除中位数这个位置的数,那么那个数是一定的。

所以我们可以把 \(k\) 加到最大的可以加的数上,统计答案就在这个数,然后二分算中位数即可。

其它策略?

我们可不可以使得中位数变大一点?

此时我们就询问 \(a_n\),然后通过操作来使得中位数最大即可。

操作也是很好想的,如果对 \(a\) 排序然后每次二分实现的话复杂度就是 \(O(n\log V)\) 的。

1.3 D

被诈骗???

确实,今天 15 分钟切了。

如果你提前求出从 1 到达每个点的最少时间,你发现不好做,因为你要限制的区间是有约束的。

换句话说,假设 A 从 \(s\) 开始走到 \(t\),你知道 \(dp_t\),但是 \(dp_t\) 可能由 \([s,t)\) 的数转移过来,就没办法了。

解决方法也很好想,顺序扫描,每次统计从 \(i\) 出发的边所造成的贡献。对于边 \(i\to to\),此时只考虑了 \([1,i)\) 的边,所以对于 \([i+1,to)\) 的点,这时的 dp 值完全是不限制的、正确的;所以我们计算一下影响区间就好了,打一个数组差分。

1.4 E

1.4.1 E1

wzy 赛时过了,说笛卡尔树,我接着做了差不多 20 分钟过了。

建出树来,发现如果 \(sum_l\) 大于 \(a_x\) 的话,那么 \(l\) 就一定可以替代 \(x\)\(r\) 同理。

但是有一个前提,就是到祖先的路径上的点都是可以的。

所以两次 dfs 即可。

严谨的证明你考虑每次操作是 upd 和删除,那此时 \(x\)\(l,r\) 所表示的数在 \(S\) 里面就一定是相邻的。

其实我交上去发现过了也觉得很不可思议。

1.4.2 E2

还不会。

还是顺带加强版 [JOISC2022] 鱼 2。

在笛卡尔树的角度想是没有前途的,看能不能转化成区间的性质。

\(pre_r-pre_{l-1} \le \min(a_{l-1},a_{r+1})\),则 \([l,r]\) 内的所有数都不满足条件。


2 ABC

2.1 E

之前做过类似,直接把 \(x\)\(y\) 分开处理。

绝对值的形式也很经典。

2.2 F

贪心还是很经典。

不会证明,但是都是选 2 个数来确定排序方式。

排序完了做 dp 就行。

2.3 G

异或高斯消元,不会。

posted @ 2024-08-11 17:00  LCat90  阅读(11)  评论(0编辑  收藏  举报