2025 贵阳 代码源 Day 2

Day 2

A. CodeForces 1474C Array Destruction

可以发现每次操作一定会选择当前 \(a\) 中的最大值以及另一个值,我们对 \(a\) 排序,并枚举 \(i=1\rightarrow n-1\) 选择 \(i\)\(n\) 作为第一次操作的两个值,这样就确定了第一次 \(x\) 的值,按照题目要求操作完整个 \(a\) ,单次整轮复杂度 \(O(n)\)\(n\) 轮总复杂度 \(O(n^2)\)

B. CodeForces 1237D Balanced Playlist

单调队列,存下标 \(p\)\(a_p\) 递减。枚举 \(i\) 计算 \(i\) 位置的答案,开始前从头弹出所有 \(p<i\),然后不断扩展区间直到 \(min\times 2<max\) 时统计答案即可。

如果整个序列的 \(max,min\) 不满足 \(min\times 2<max\),全部输出 -1

C. CodeForces 1924B Space Harbour

发现添加新港口只会影响它和它前后两个港口之间的值,考虑线段树,打标记 \(k,b\) 赋值表示 \(cost_i \leftarrow k\times i+b\),区修区查维护即可

F. 洛谷 P5268 一个简单的询问

差分询问,变成 \(\sum\limits_x^\infty t(r_1,x)\times get(r_2,x) - \sum\limits_x^\infty get(l_1-1,x)\times get(r_2,x) - \sum\limits_x^\infty get(r_1,x)\times get(l_2-1,x) + \sum\limits_x^\infty get(l_1-1,x)\times get(l_2-1,x)\),显然可以拆成四个询问后莫队,结束。

posted @ 2025-07-25 21:33  2020luke  阅读(47)  评论(1)    收藏  举报