wyh的dp入门刷题笔记
0:
靠前感觉之前dp抄题解都是抄的题解,自己从没有真正理解过dp。wyh下了很大决心从头学dp,于是便有了这篇文章。
1.背包
前四讲01背包&多重背包&完全背包(混合背包) :樱花
\(Note:\) 还需要学单调队列优化多重背包。
其他:咕咕咕!
泛化物品:
应该说是背包问题的一个方法综合,以函数的眼光审视背包,有助于新类型背包问题的解决。
考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。
更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。
2.简单 pj 组 dp:
这是一道区间dp的模型,可以延伸出许多变形。
这是一道二维dp的模型,唯一讨厌的是高精。需要注意的是算边界,由于wyh很菜,所以经常算错,还不爱调。
四维dp,就喜欢这样的题,既不用算边界,也不怎么用调qwq
算边界仍然是老大难,而且对于这种方程的状态及转移还是很不熟练。
状态还是不感冒,还有,一定要读懂题在做,一定要读懂题在做,一定要读懂题在做!!!不要问我为啥强调。。。
应该先看看当前状态需要用到哪些状态,从而确定循环的顺序以及边界。
边界不光确定在循环中,有时在方程中也存在边界问题。。。
两条路径不交插的模型需要

而不是

所以,不要自作聪明,不要想当然,每一个细节都要模拟好。
dp状态不合法的最好不遍历到,因为像wyh这种智商是想不到赋最值来避开不合法状态会发生什么的qwq。inf+1=-inf。
我需要一个好的dp状态,啊啊啊啊啊啊啊wyh智商咋那么低啊啊啊崩溃了啊啊啊啊啊啊啊!
设 \(f_{i,x}\) 表示 \(i\) 个苹果放在 \(x\) 个抽屉里。第一种情况是有一个抽屉放一个苹果,即 \(f_{i-1,x-1}\),第二种情况是保证没有抽屉放一个苹果。就是把每一个抽屉都先放上一个苹果,然后还剩 \(i-x\) 个苹果。所以方程是:
\[f_{i,x} = f_{i-1,x-1} + f_{i-x,x} \]
(估计连智商低的我都能看懂的解释就不能再详细了 qwq
简单的 dp 就是要考虑当前状态根据之前的状态转移过来,并且大多数要考虑 i-1 的情况。
3.树形 dp 入门:
(未完待续,等待Update,,,
wyh的dp入门刷题笔记的更多相关文章
- 《Data Structures and Algorithm Analysis in C》学习与刷题笔记
<Data Structures and Algorithm Analysis in C>学习与刷题笔记 为什么要学习DSAAC? 某个月黑风高的夜晚,下班的我走在黯淡无光.冷清无人的冲之 ...
- Python 刷题笔记
Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...
- PTA刷题笔记
PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...
- PAT-甲级刷题笔记和总结
本帖主要记录一些自己在刷题过程中的一些笔记,包括: 1.常用的函数 2.STL中常用方法 3.常见错误 4.其他常用方法 5.刷题过程中的常见算法:https://www.cnblogs.com/M ...
- 《剑指offer》刷题笔记
简介 此笔记为我在 leetcode 上的<剑指offer>专题刷题时的笔记整理. 在刷题时我尝试了 leetcode 上热门题解中的多种方法,这些不同方法的实现都列在了笔记中. leet ...
- 18.9.10 LeetCode刷题笔记
本人算法还是比较菜的,因此大部分在刷基础题,高手勿喷 选择Python进行刷题,因为坑少,所以不太想用CPP: 1.买股票的最佳时期2 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. ...
- LeetCode刷题笔记和想法(C++)
主要用于记录在LeetCode刷题的过程中学习到的一些思想和自己的想法,希望通过leetcode提升自己的编程素养 :p 高效leetcode刷题小诀窍(这只是目前对我自己而言的小方法,之后会根据自己 ...
- LeetCode刷题笔记 - 12. 整数转罗马数字
学好算法很重要,然后要学好算法,大量的练习是必不可少的,LeetCode是我经常去的一个刷题网站,上面的题目非常详细,各个标签的题目都有,可以整体练习,本公众号后续会带大家做一做上面的算法题. 官方链 ...
- mysql刷题笔记
近期,为提升自己的工程能力,在休息时常通过刷题来回顾一下基础性知识. 于是选择了牛客网上的mysql知识题库练手,过程中,主要遇到了几个比较有意思的题,记录下来,方便回顾. 题1:SQL29 计算用户 ...
随机推荐
- Django框架之图书管理系统(一)
图书管理系统共分为两篇博客进行讲解,该篇博客主要记录图书与出版社之间的关系(一对一),记录图书的增删查改操作 ============================================= ...
- 201771010135杨蓉庆 《面对对象程序设计(java)》第七周学习总结
学习目标 1.深入理解OO程序设计的特征:继承.多态: 2.熟练掌握Java语言中基于类.继承技术构造程序的语法知识: 3.利用继承定义类设计程序,能够设计开发含有1个主类.2个以上用户自定义类的应用 ...
- CSS水平垂直居中常见方法总结
1.元素水平居中 当然最好使的是: margin: 0 auto; 居中不好使的原因: 1.元素没有设置宽度,没有宽度怎么居中嘛! 2.设置了宽度依然不好使,你设置的是行内元素吧,行内元素和块元素的区 ...
- 如果谷歌浏览器突然打不开网页,而且显示:"网页可能暂时无法连接,或者它已永久性地移动到了新网址,返回ERR_TUNNEL_CONNECTION_FAILED",怎么办?用这个方法,亲试有效!!!
打开cmd: 依次输入: ipconfig /flushdnsnbtstat –rnetsh int ip resetnetsh winsock reset 效果图 然后我的浏览器就能正常使用了,很有 ...
- 刚下载好的 vscode 不能运行,一片黑 以及终端不能输入 解决办法
1.鼠标右键vscode快捷方式点击属性,选择兼容性,勾选以兼容模式运行,下拉列表调整为windows vista (service pack 1)即可解决. 2.如果打开终端不能输入命令,首先点击属 ...
- Jenkins 定时备份插件 ThinBackup
需求 公司的整个测试环境正式环境打包都是用的同一个Jenkins, 该Jenkins是搭建在内部的一台机器上,之前有一台机器的硬盘出了问题,为了安全起见,我们决定备份 Jenkins 的配置和数据. ...
- Verilog状态机
以1011为例 代码如下: //1011(Meay型) module state1(clk,in,rst_n,out); input clk; input rst_n; input in; outpu ...
- PHP的isset()、is_null、empty()使用总结
这几个变量判断函数在PHP开发中用的其实挺多的,而且粗看上去都差不多,但其实还是有不少的区别的,如果搞不清楚,也许就会遗留一些潜在的bug, 包括我自已也遇到过这样的坑,比如有一次我就遇到过用empt ...
- SSM日常报错
mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方法: po ...
- Struts+Spring+Hibernate整合笔记一
OpenSessionInview: 1.如果当前方法没有事物环境,则调用完毕getHibernate以后.session关闭: 说明:1如果测试dao层,没有事物环境 2如果测试service层,但 ...