20250723
总结
CF1208D
- 思路1:找到最靠后的0,把这个位置s值变成kInf,p值为1,并把后面所有s[i]−1。然后继续找到最靠后的0,s赋kInf,p赋2,重复操作即可。可以用线段树来实现。
- 思路2:还是从后往前确定答案,对于每个s[i],用倍增算它前面有多少比它小的数,直接记录答案,发现这跟树状数组很像,可以直接利用树状数组结构
CF702F
用平衡树,每次把树分成3个部分[0,c),[c,2c),[2c,+kInf),每次[0,c)部分不变,[c,2c)暴力插入[0,c),[2c,+kInf)打-c标记
这题我因为分的时候把[0,c),[c,2c)分成了[0,c],[c,2c],调了半天,样例都没过。。。
CF1690G
这题可以直接用线段树维护答案,记录区间两端点的值,合并的时候拼起来减贡献即可,修改就是区间覆盖
P4587
汇总
我发现我做习题太慢了,可以20分钟没有确切思路框架就看题解,这样效率会高一些,虽然CF702F也是想了1.5h没办法看了1题解,发现自己是傻逼

浙公网安备 33010602011771号