DP - 九种背包合集
文章平均质量分 96
动态规划DP
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
【算法】动态规划+“背包九讲”原理超详细讲解+常见dp问题(9种)总结
背包九讲原创 2019-12-08 11:53:18 · 5177 阅读 · 8 评论 -
0x52. 动态规划 - 背包(习题详解 × 19)
目录0x52. 动态规划 - 背包0/10/10/1 背包完全背包多重背包分组背包本系列博客是《算法竞赛进阶指南》的学习笔记,包含书中的部分重要知识点、例题解题报告及我个人的学习心得和对该算法的补充拓展,仅用于学习交流和复习,无任何商业用途。博客中部分内容来源于书本和网络 ,由我个人整理总结。部分内容由我个人编写而成,如果想要有更好的学习体验或者希望学习到更全面的知识,请于京东搜索购买正版图书:《算法竞赛进阶指南》——作者李煜东,强烈安利,好书不火系列,谢谢配合。%学习笔记目录链接: 学习笔记目录原创 2021-08-16 22:48:44 · 948 阅读 · 0 评论 -
UVA12563 劲歌金曲 Jin Ge Jin Qu hao(01背包)
(如果当你看到这个标题的时候笑了,那么这个问题是为你准备的ヽ( ̄▽ ̄)ノ)如果问一个麦霸:“你在KTV里必唱的曲目有哪些?”得到的答案通常都会包含一首“神曲”:古巨基的《劲歌金曲》。为什么呢?一般来说,KTV不会在“时间到”的时候鲁莽地把正在唱的歌切掉,而是会等它放完。例如:在还有15秒时再唱一首2分钟的歌,则实际上多唱了105秒。但是融合了37首歌曲的《劲歌金曲》长达11分18秒,如果唱这首,则相当于多长了663秒!假设你正在唱KTV,还剩t秒时间。你决定接下来只唱你最爱的n首歌(不含《劲歌金曲》).原创 2020-10-14 20:26:31 · 459 阅读 · 1 评论 -
AcWing 734. 能量石 (01背包)+(贪心 - 领项交换)
AcWing 734. 能量石#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;const int N = 500007;struct node{ int s, e, l; bool operator<(const node &t)const { return s原创 2020-09-10 17:33:00 · 274 阅读 · 0 评论 -
【动态规划】背包模型
一、01背包及各种变形A、AcWing 423. 采药01背包模板#include<cstdio>#include<algorithm>using namespace std;const int N = 50007;int n, m;int f[N];int t[N], w[N];int main(){ scanf("%d%d", &m, &n); for(int i = 1; i <= n; ++ i)原创 2020-09-01 15:06:30 · 685 阅读 · 0 评论 -
牛客算法周周练2 B Music Problem(DP,抽屉原理,二进制拆分)
链接:https://ac.nowcoder.com/acm/contest/5203/B来源:牛客网题目描述Listening to the music is relax, but for obsessive(强迫症), it may be unbearable. HH is an obsessive, he only start to listen to music at 12:00...原创 2020-04-16 20:33:45 · 338 阅读 · 0 评论 -
【每日DP】day 8、P2014 [CTSC1997]选课(树形DP(树形背包)模板)难度⭐⭐⭐
P2014 [CTSC1997]选课题意为选一门课前要看它是否有前提条件:即选了一门主课才能选 “副科”,所以可以用分组背包或者树形背包来做。链式前向星建树。本身这道题的数据是一组森林,但是森林很难一起dfs所以就把所有的树根都以0为根节点建一颗大树,直接链式前向星前序遍历即可。转移方程 f[p][j]f[p][j]f[p][j]是指f[以p为根节点][当前学分剩余]f[以p为根节点][...原创 2020-03-22 22:38:20 · 326 阅读 · 0 评论 -
【每日DP】day7P1064 金明的预算方案 (分组背包,我又悟了)难度⭐⭐★
P1064 金明的预算方案背包其实就是把一个大问题拆分成若干个子问题,把一个要拿东西的动作按照题目要求分成若干个动作,分别枚举(DP其实就是非常的暴力),比较取最大值。比如这道题,背包的物品之间是有依赖的,所以分情况讨论,考虑只放主件放主件和附件一(如果有的话)放主件和附件二放主件和两个附件然后物品都只有一个,所以就是最普通的01背包。其中f[i]f[i]f[i]表示的是在...原创 2020-03-22 18:34:02 · 293 阅读 · 0 评论 -
CF3B Lorry (手动模拟01背包,贪心)难度⭐⭐⭐
这道题洛谷上的翻译是错的,最后输出格式那里应该是输出一行所选物品的编号,中间用空格隔开手动模拟01背包这道题看上去很像是01背包的模板题,但是很明显,v=1e9,正常的01背包是肯定会爆掉62MB的内存的,所以不可能用普通的01背包来做,但是转念一想,这道题是由10背包魔改过来的,增加的难度是空间的问题。那么如果可以解决掉空间上的不足,用01背包的思路来做即可先把物品1或2 分成两组,按...原创 2020-03-20 20:52:08 · 266 阅读 · 0 评论 -
【每日DP】day6 P1541 乌龟棋(四维DP)难度⭐⭐⭐
P1541 乌龟棋四维DP——四种状态,所以四维DPf[i][j][k][l]f[i][j][k][l]f[i][j][k][l]:表示牌号分别为1,2,3,4,的时候用了i,j,k,l张牌思路详解#include<bits/stdc++.h>#define ls (p<<1)#define rs (p<<1|1)#define mid ((l...原创 2020-03-19 23:04:34 · 170 阅读 · 0 评论 -
【每日DP】day4 P1417 烹调方案(奇怪的01背包增加了)难度⭐⭐⭐
P1417 烹调方案每件物品只有一个,很明显是01背包,但是价值的转换方式不同,是要求 ai−t∗bia_i-t*b_iai−t∗bi 尽可能最大。普通的01背包的价值是不变的,而这一道题目中的价值是随着所选物品的顺序有所改变,所以应该按照题意排序,并用 maxn去找最大的答案,因为答案不一定是f[t]f[t]f[t]。还有就是常开longlonglong longlonglong 是...原创 2020-03-17 00:06:48 · 204 阅读 · 0 评论 -
【每日DP】day1 P1802 5倍经验日(别样的01背包)难度⭐★
P1802 5倍经验日一道有点意思的01背包,可以帮助理解。好久没写DP了,每天一道DP,从基础学起,正好复习一下。这道题不同之处在于失败了(不拿走这件东西)也会有收益,所以就在正常的倒序一维01背包的基础之上,如果背包容量小于当前的物品的重量,也要加上lose[i]lose[i]lose[i],以及别忘了题中的五倍经验。#include<bits/stdc++.h>usin...原创 2020-03-14 19:50:05 · 242 阅读 · 2 评论 -
【题解】P1508 Likecloud-吃、吃、吃(简单DP)
题目链接题目描述正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中。某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个nm(n and m<=200)的矩型的巨型大餐桌,而自己正处在这个大餐桌的一侧的中点下边。餐桌被划分为了nm个小方格,每一个方格中都有一个圆形的巨型大餐盘,上面盛满了令李大水牛朝思暮想的食物。李大水牛已将餐桌上所有的食物按其所能提供的能量...原创 2020-02-25 22:15:55 · 363 阅读 · 0 评论 -
算法_棋盘型高维动态规划
三维DPP1006 传纸条题目描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1),小轩坐在矩阵的右下角,坐标 (m,n)。从小渊传到小轩的纸...原创 2019-12-31 19:36:55 · 571 阅读 · 0 评论 -
LCS最长公共子序列和LIS最长上升子序列——例题剖析
longest comment subsequence模板题longest comment subsequenceA subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, …, xm&...原创 2020-01-09 11:09:11 · 663 阅读 · 0 评论