20250813(补档)
总结
今天中午还是写了英语
CF1849E
- 思路历程:考虑如何枚举区间最大值,尝试单调栈找出每个数左、右边第一个比它大的数。
想到一种方法,枚举左端点,从右往左扫,记录最小值位置pos,为了让pos成为区间最小值,记录pos右边第一个比它小的位置,可以完成区间统计 - 题解:这个题所有题解都是这种做法,没有新的
收获:
其实对于这种区间统计类的题已经有固定套路了,最近这种题做的多早就熟练了
P3863
- 思路历程:刚开始在考虑对时间分块,显然不现实,后面在想离线处理,发现也不好统计,没想出来
- 题解:同样考虑对时间分块,并把询问离线处理,但是可以把一个询问拆成两块,
例如[l, r]区间加上x,可以变为在处理l的时候,把[t, m]时刻加上x,扫到r + 1的时候把[t, m]时刻减去x,
查询的时候就只用查[0, t - 1]有多少>=y - a[i]的值就行了
完美解决统计问题
收获:
借鉴前缀和处理带有特殊限制区间和问题有奇效
CF459D
- 思路历程:这是接近板子的题,直接提前预处理前缀和后缀值,离散化一下,从前往后扫,用权值线段树统计答案
- 题解:没看,这题太板了
收获:无
P6617
- 思路历程:考虑了预处理前驱(前面第一个和它和为w的位置),但是这样做一修改就全寄
但是根据题解和观察手推,可以发现一次修改顶多影响5个位置,只要用set维护每个位置,再用线段树终结此题 - 题解:做的时候看了题解的
收获:
还是手推,可以发现一些隐性的范围或数量限制,可以作为很好的突破口
CF526F
还没写完,并且似乎有除了题解写的以外的做法,还在思考

浙公网安备 33010602011771号