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(a-1,b,c,d)+\)\((a+2b+3c+4d)\) 格的分数

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

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

P2889 [USACO07NOV]Milking Time S

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

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

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

\[f(i)=max{f(i-1),f(begin-r)+Eff} \]

时间复杂度 \(O(n^2)\)

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(i-1,j)+g(i-1,j-1)×s_i \]

\(s_i\) 为第 \(i\)\(a\) 的和,

这一步时间复杂度是 \(O(n^2)\)

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

然后显然最多有一列大于一半,于是在计算非法方案的时候枚举第几列非法,这里设第 \(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\) 个点接上左右子树,显然两个子树高度都不大于 \(j-1\),然后枚举左子树的点数,对于左子树有 \(k\) 个点的情况根据乘法原理,总方案数就是

\[f(k,j-1)×f(i-k-1,j-1) \]

所以有:

\[f(i,j)=∑ f(k,j-1)×f(i-k-1,j-1),f(i,0)=0,f(0,i)=1 \]

答案就是 \(f(n,n)-f(n,h-1)\)

SP283 NAPTIME - Naptime

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

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

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

后续

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

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

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

posted @ 2022-07-16 17:28  PassName  阅读(42)  评论(0)    收藏  举报