- 遇到小数可以整数小数部分分开考虑
- 当要对一个序列每个数都进行某操作求最值而操作次数很多,并且有某个值与次数有单调性,可以二分这个值,求出这个值边界,然后再将剩下部分暴力做。(例)
- 设一个序列的线性基为\(B\)(序列长度为\(n\)),则线性基表达出的每个数的个数为\(2^{n-|B|}\)(应用)(同时,这个题也是求给一个数,这个数在一个集合所有异或结果中的排名的模板)
- 当在一个序列(或环)上出现既可以向左,也可以向右(即可能走回头路),要求某最值时,可用区间DP(例1,例2),这种问题通常DP要再加一维,表示走完这个区间在左端点还是右端点。
- 区间DP如果同一个区间不同状态有不同转移,通常再设一维状态。(例,还有就是想这种括号序列的判定要求,基本上就是区间DP。
- 当遇到有多天/多次之类的时间分段特性,每天要有不同的决策,代价不同,可以想到DP(例)
- 某些DP的某个状态可以压到DP的答案里(因为既然要记录这个状态,就是这个状态对答案有影响),如果可以在某一步算出当前某个状态对下一步的影响,就可以压掉。(例)
posted @
2025-02-10 22:22
煦阳gyy
阅读(
11)
评论()
收藏
举报