专题记录
dp
- A。
-
括号序列 trick(序列赋值)
-
最大子段和 dp 模型。
- B。
-
异或恒等式(\(a+b=a \oplus b+2(a \And b)\))
-
统计满足要求的数对——数位 dp。
- C。
-
推式子技巧(拆绝对值、拆求和)
-
看到乘积形式与最小(大)化——完全背包模型。
- D。
-
正难则反思想。
-
设计 dp——贴着 \(i\) 的区间(这句话可能有点抽象,感受一下)。
计数
- B
-
正难则反思想。
-
利用单调性,用数据结构维护。
反悔贪心
步骤:
-
思考局部最优策略。
-
建立反悔机制(即向堆中插入什么,比如虚拟权值)。
注意:
-
排序规则。
-
用大根堆还是小根堆还是其他的。
-
连续反悔。
- P2949
任务调度模型:按照右端点排序,维护 cnt 表示最大时间,若不能完成当前任务(time<cnt)则取出堆中最小值反悔。适用于从前往后的贪心。
- P1484
种树模型:每次种一棵树就反悔到相邻的两棵,为了处理连续反悔,将每 3 棵进行打包,用链表维护。适用于连续段贪心。
- P10478
-
序列赋值。
-
缩点技巧(将相邻相同元素看成一个元素)。
浙公网安备 33010602011771号