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)\),显然可以拆成四个询问后莫队,结束。

浙公网安备 33010602011771号