0:

靠前感觉之前dp抄题解都是抄的题解,自己从没有真正理解过dp。wyh下了很大决心从头学dp,于是便有了这篇文章。

1.背包

前四讲01背包&多重背包&完全背包(混合背包) :樱花

\(Note:\) 还需要学单调队列优化多重背包。

其他:咕咕咕!

泛化物品:

应该说是背包问题的一个方法综合,以函数的眼光审视背包,有助于新类型背包问题的解决。

考虑这样一种物品,它并没有固定的费用和价值,而是它的价值随着你分配给它的费用而变化。这就是泛化物品的概念。

更严格的定义之。在背包容量为V的背包问题中,泛化物品是一个定义域为0..V中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。

2.简单 pj 组 dp:

NOI1995石子合并

这是一道区间dp的模型,可以延伸出许多变形。

NOIP2000乘积最大

这是一道二维dp的模型,唯一讨厌的是高精。需要注意的是算边界,由于wyh很菜,所以经常算错,还不爱调。

NOIP2000方格取数

四维dp,就喜欢这样的题,既不用算边界,也不怎么用调qwq

洛谷P2758编辑距离

算边界仍然是老大难,而且对于这种方程的状态及转移还是很不熟练。

洛谷P1868饥饿的奶牛

状态还是不感冒,还有,一定要读懂题在做,一定要读懂题在做,一定要读懂题在做!!!不要问我为啥强调。。。

NOIP2001统计单词个数

应该先看看当前状态需要用到哪些状态,从而确定循环的顺序以及边界。

NOIP2006能量项链

边界不光确定在循环中,有时在方程中也存在边界问题。。。

NOIP2008传纸条

两条路径不交插的模型需要

而不是

所以,不要自作聪明,不要想当然,每一个细节都要模拟好。

NOIP2003数字游戏

dp状态不合法的最好不遍历到,因为像wyh这种智商是想不到赋最值来避开不合法状态会发生什么的qwq。inf+1=-inf。

NOIP2007矩阵取数游戏

我需要一个好的dp状态,啊啊啊啊啊啊啊wyh智商咋那么低啊啊啊崩溃了啊啊啊啊啊啊啊!

NOIP2001数的划分

设 \(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 的情况。

洛谷P1594护卫队

3.树形 dp 入门:

洛谷P2015二叉苹果树

NOIP2016换教室

洛谷P2014选课

NOIP2019纪念品

(未完待续,等待Update,,,

wyh的dp入门刷题笔记的更多相关文章

  1. 《Data Structures and Algorithm Analysis in C》学习与刷题笔记

    <Data Structures and Algorithm Analysis in C>学习与刷题笔记 为什么要学习DSAAC? 某个月黑风高的夜晚,下班的我走在黯淡无光.冷清无人的冲之 ...

  2. Python 刷题笔记

    Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...

  3. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

  4. PAT-甲级刷题笔记和总结

     本帖主要记录一些自己在刷题过程中的一些笔记,包括: 1.常用的函数 2.STL中常用方法 3.常见错误 4.其他常用方法 5.刷题过程中的常见算法:https://www.cnblogs.com/M ...

  5. 《剑指offer》刷题笔记

    简介 此笔记为我在 leetcode 上的<剑指offer>专题刷题时的笔记整理. 在刷题时我尝试了 leetcode 上热门题解中的多种方法,这些不同方法的实现都列在了笔记中. leet ...

  6. 18.9.10 LeetCode刷题笔记

    本人算法还是比较菜的,因此大部分在刷基础题,高手勿喷 选择Python进行刷题,因为坑少,所以不太想用CPP: 1.买股票的最佳时期2 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. ...

  7. LeetCode刷题笔记和想法(C++)

    主要用于记录在LeetCode刷题的过程中学习到的一些思想和自己的想法,希望通过leetcode提升自己的编程素养 :p 高效leetcode刷题小诀窍(这只是目前对我自己而言的小方法,之后会根据自己 ...

  8. LeetCode刷题笔记 - 12. 整数转罗马数字

    学好算法很重要,然后要学好算法,大量的练习是必不可少的,LeetCode是我经常去的一个刷题网站,上面的题目非常详细,各个标签的题目都有,可以整体练习,本公众号后续会带大家做一做上面的算法题. 官方链 ...

  9. mysql刷题笔记

    近期,为提升自己的工程能力,在休息时常通过刷题来回顾一下基础性知识. 于是选择了牛客网上的mysql知识题库练手,过程中,主要遇到了几个比较有意思的题,记录下来,方便回顾. 题1:SQL29 计算用户 ...

随机推荐

  1. C# 动态类型 以及 脚本调用(scriptRunTime)

    在使用中让我感觉 好像 JavaScript中的 动态类型囧 先看动态类型 class Program { static void Main(string[] args) { var streamRe ...

  2. Spark性能调优-基础篇

    前言 在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作 ...

  3. DotNet中静态成员、静态类、静态构造方法和实例构造方法的区别与联系

    在面向对象的C#程序设计中,关于静态的概念一直是很多人搞不明白的.下面介绍这些带“静态”的名称. 1.静态成员: 定义:静态成员是用static关键字修饰的成员(包括字段属性和方法) 所属:静态成员是 ...

  4. Mysql常用的sql语句

    替换某字段的字符串: UPDATE article SET content = replace(content, '解决', '解放') WHERE ID<5000; 清空数据库,id也置空: ...

  5. Python引用某一文件的方法出现红色波浪线

    from parse import parse_url#引用parse里面的方法 结果出现波浪线并提示 This inspection detects names that should resolv ...

  6. Python:json 模块

    字符串转dict.list data = "[{....},{...},...]" list_data = json.loads(data) dict.list转字符串 list ...

  7. 关于Mobility Express转LAP注意事项

    在实际的网络环境中,有些时候我们需要将ME模式的AP转换为LAP工作. PS:ME模式是思科8系列的AP可以支持,例如AP1852.AP2802.AP3802等型号.它可以作为控制器使用,同时也可以工 ...

  8. ajax发送GET和POST请求

    1.ajax-get请求demo <script> document.getElementById("buttonname").onclik=function(){ / ...

  9. toPlainString() 和 toString()(转载)

    函数 toPlainString() 和 toString() 对于 BigDecimal b ; (b=(0.4321)^ 20) String s = b.toPlainString() ; Sy ...

  10. php 随机生成汉字

    function getChar($num) // $num为生成汉字的数量 { $b = ''; for ($i=0; $i<$num; $i++) { // 使用chr()函数拼接双字节汉字 ...