在这片梦想之地,不堪回首的过去像泡沫一样散去,不愿面对的明天也永远不会到来,人们为何选择沉睡?是因为害|

PassName

园龄:3年1个月粉丝:32关注:16

2022.7.13 tongyf 讲课纪要

前言

这个笔记记晚了,主要是都在跟 LCT 进行殊死搏斗,所以博客这方面就挂了很久。

tongyf 学长当年是拿到省一之后省选炸了,之后暴切高考。ORZ%%%

这节课讲的是线性dp和背包dp,也属于对牛弹琴了,,,比 thecold 学长讲的还离谱。那些初中生连dp是什么都不知道,上来就20min搞了4个绿题,更是一节课给他们讲了足足9绿8蓝1紫。我认为最经典的是这句话:

“你们应该会数据结构优化dp,单调队列优化dp,斜率优化这些比较常见的优化dp方式吧,这里我给你们讲一下二进制拆分”

正文

在这里就说一说比较经典的题吧

P1541 [NOIP2010 提高组] 乌龟棋

决策和当前每种牌打出了几张有关,所以状态内要记录每种牌打出了几张。不需要记录当前走了几格,因为走的格数可以由牌的打出情况推出来,而且保证牌全用完就刚好走到终点。

于是设 f(a,b,c,d) 为第 1/2/3/4 种牌打出了几张,转移就分类讨论打出了哪种牌。

以打出第一种牌为例,转移方程为:

f(a,b,c,d)=f(a1,b,c,d)+(a+2b+3c+4d) 格的分数

可以类比得出打出另外三种牌的转移方程

我当时是用记忆化切掉的,后来听学长讲完恍然大悟////

P2889 [USACO07NOV]Milking Time S

这道题 Bow 的评价是——这个初中生应该可以随便切,水蓝

f(i) 为前 i 小时最多挤出的牛奶

转移就枚举第 i 小时结束的挤奶过程,注意要从挤奶过程开始时间减去休息时间转移过来,或者直接不挤奶,则有:

f(i)=maxf(i1),f(beginr)+Eff

时间复杂度 O(n2)

P4158 [SCOI2009]粉刷匠

f(i,j,k,0/1/2) 为当前为第 i 行第 j 列,已经涂色 k 次,当前格子未涂色/涂色正确/涂色错误的最大正确涂色格数

转移的话考虑前一个格子的颜色以及前一个格子是否填涂即可
如果当前格子涂色,前一个格子也涂色则k不增加,否则需要加一
详细的转移方程比较复杂,不过比较容易想,可以滚动数组优化掉第一维

这个方法好啊!!然后我是用 O(nm^2t) 的偏暴力的方法加 register,inline 小小优化一下卡过去了。。。。。。

P5664 [CSP-S2019] Emiya 家今天的饭

先考虑没有第三个限制的情况,即设 g(i,j) 为前 i 行选了 j 个的方案数,考虑第 i 行选不选,则有转移方程

g(i,j)=g(i1,j)+g(i1,j1)×si

si 为第 ia 的和,

这一步时间复杂度是 O(n2)

然后考虑每一列不大于一半的限制,为了容易处理,我们可以进行简单容斥转化为不考虑第三个限制的方案数-某一列大于一半的方案数(思路和上一题很像)

然后显然最多有一列大于一半,于是在计算非法方案的时候枚举第几列非法,这里设第 x 列非法,设 f(i,j,k) 为前 i 行,第 x 列选了 j 个,其他列选了 k 个的方案数,因为对于第 x 列之外的列我们只需要考虑选了多少个,不需要考虑具体分布在哪一列

CF9D How many trees?

容易想到设 f(i,j)i 个点的二叉树高度大于等于 j 的有几个,但是难以转移,不妨设 f(i,j )为 i 个点的二叉树高度不大于 j 的有几个
转移的时候考虑在第 i 个点接上左右子树,显然两个子树高度都不大于 j1,然后枚举左子树的点数,对于左子树有 k 个点的情况根据乘法原理,总方案数就是

f(k,j1)×f(ik1,j1)

所以有:

f(i,j)=f(k,j1)×f(ik1,j1),f(i,0)=0,f(0,i)=1

答案就是 f(n,n)f(n,h1)

SP283 NAPTIME - Naptime

先考虑时间不连续的情况,则设 f(i,j,0/1) 为前 i 个小时,已经睡了 j 个小时,第 i 个小时睡觉/不睡觉的最大体力恢复

然后考虑时间连续的情况,上述 DP 是无法包含每天第一天睡觉能回体力的情况的,于是只需要强制最后面小时休息,再进行一次 DP 即可

类似的环上的 DP ,都可以从断环成链的角度考虑

后续

讲完之后广大初中生反应听不懂。

Bow:“还听不懂啊,不应该啊”

........................

本文作者:PassName

本文链接:https://www.cnblogs.com/spaceswalker/p/16484724.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   PassName  阅读(37)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起