P2837 [USACO08FEB]Dining Cows B
定义为将前个数均改为1所需要的次数,同理,为后缀,但是为改成2所需的次数
然后遍历一边寻找答案即可
时间复杂度
P1020 导弹拦截
LIS 经典题,第一问为最长不升子序列长度,第二问为最长严格上升子序列长度
值域不大,不需要离散化,暴力BIT优化DP即可
时间复杂度,为值域
P2642 双子序列最大和
最大子段和经典题,表示的最大子段和,为后缀,同理
暴力枚举断点统计答案即可
时间复杂度,记得开
P1982 小朋友的数字
用类似最大子段和的方式算出特征值,再扫一遍统计分数即可
需要写高精或者用,很毒瘤
时间复杂度
P1043 数字游戏
先考虑链上情况,定义为分成段的极值,暴力枚举进行转移即可
环上问题做n次dp即可
时间复杂度
【LGR-075】1A/2C 「SWTR-6」GCDs & LCMs
对于两个正整数,易得当时,,证明略
强行dp,二分优化转移过程即可
时间复杂度
P4141 消失之物
背包经典题
先完成一遍背包进行预处理,在失去一个物品的时候反向转移减去它的贡献即可
时间复杂度
CF366C Dima and Salad
简单推式子可得,题目求的是以为大小,为价值,背包大小为0时的方案数
分别用正数和负数进行一次背包即可
时间复杂度为,其中为值域
P4170 [CQOI2007]涂色
定义为将i~j之间的木板涂成正确颜色的最小代价
当时,
否则,
简单进行转移即可,时间复杂度
P2851 [USACO06DEC]The Fewest Coins G
首先分别对于自己的硬币做多重背包,对于商家的硬币做完全背包
可以通过抽屉原理证得:商家所需要找的硬币面额不会超过
需要注意的是,多重背包需要进行二进制优化。然后暴力枚举进行合并即可
CF1354D Multiset
对于这类的问题,首先考虑权值线段树或者平衡树
此题因为卡空间,因此只能使用权值线段树
对于1操作,直接线段树上二分并在节点上维护和即可
对于2操作,直接单点加即可
时间复杂度,空间复杂度
P3116 [USACO15JAN]Meeting Time S
根据题意可知本题的图为DAG,可以进行拓扑排序
定义表示能否恰好经过的时间到达节点,大力dp即可
分别对两个人做上面的dp,最后进行合并,时间复杂度,为边权
P1330 封锁阳光大学
考虑对每个连通块进行二分图染色,并将两种颜色中点数少的那些点都放上河蟹
注意到,如果无法对某个连通块进行二分图染色,则答案为
大力bfs即可,时间复杂度
SP1437 PT07Z - Longest path in a tree
树直径板子
先以任意点为根做dfs,找到距离该节点最远的叶子
再以该点为根dfs,找到以它为根的树高,即为直径
时间复杂度
P2921 [USACO08DEC]Trick or Treat on the Farm G
注意到该题的图为基环内向树
大力topsort剪掉所有链上的点,再在剩余的环上暴力dfs统计答案,最后在反向图上dfs计算链上的点的答案
时间复杂度
P2661 信息传递
注意到该题的图为基环内向树
大力topsort剪掉所有链上的点,再暴力dfs寻找最小环即可
时间复杂度
CF1027D Mouse Hunt
注意到该题的图为基环内向树
大力topsort剪掉所有链上的点,再在剩余的环上暴力dfs统计最小点权即可
时间复杂度