![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划
线性dp、树形dp、区间dp...
_wjunjie
加油吧!
展开
-
51 nod 1268 和为K的组合(2^n暴搜 / 01背包)
题目描述: 1268 和为K的组合给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。输入第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9)第2 - N + 1行...原创 2019-05-19 22:49:15 · 188 阅读 · 0 评论 -
Codeforces Round #214 (Div. 2) C. Dima and Salad(01背包应用)
题意: n个水果,每个水果有一个美味值和卡路里值,从这n个水果中选择任意数目水果,使得最终美味值总和最大,且最终满足等式∑Ai=k*∑Bi。思路: 网上题解都说这题01背包,但是自己往01背包上想了很久也没想出思路来。可能是练习的比较少,也可能是背包问题/dp问题的本质没把握好(思想没建立起来),只是死板的往已知模型上靠拢。 每个物品可以选也可以...原创 2019-01-27 11:12:05 · 250 阅读 · 0 评论 -
HDU 5637 异或数学(完全背包/bfs)
题意: 给出n个数,m次查询,每次查询x->y需要的最少步数,变换过程有两种操作,一种可以将x的任意一个二进制位取反,另一种操作将x与n个数中任意一个异或。思路: x^a^b^c....^d=y,两边同时异或x再异或一个0,可以得到0^a^b^c^...^d=x^y,所以就是将0通过好多步的异或得到x^y的最小步数。每一步异或的这些数要么来自n个数,要么是...原创 2019-01-18 11:41:17 · 379 阅读 · 0 评论 -
状压dp做题记录(总结用材料)
1.铺方格(统计方案数)#include<vector>#include<map>#include<ctime>#define ll long longusing namespace std;long long dp[12][3000];//最后结果要用long longbool judge1(int x,int len)//第一行是...原创 2018-10-07 09:17:34 · 214 阅读 · 0 评论 -
light OJ 1032 连续“1”的个数(数位dp/递推)
题意: 定义连续的两个1为某种数对,给出数n,将0~n中所有数转换为二进制形式,求出总共有多少个上述定义的数对。思路: 典型的数位类dp。1.首先预处理出以i为最高位,第i位为1/0的所有数中“一对数”的数目,包括前导零。(这地方还是很好递推的,显然第i位为零时,f【i】【0】=f【i-1】【0】+f【i-1】【1】;当第i位为1的时候,要考虑第i-1位是...原创 2019-02-01 14:31:00 · 225 阅读 · 0 评论 -
经典 && 简单线性DP 最短编辑距离
题意:给定长度n,m的字符串A,B,有3种操作(略),问字符串A变成B最少操作次数 (n, m<= 1000).思路:dp[i][j] 表示的是 s 1..i 变为 t 1…j 所需要的最少操作:故可分为三种情况讨论:1.删除s最,后一个字符:显然上一状态为 s1…i-1 == t1…j2.s后添加一个字符:同理上一状态为 s1…i == t1…j-13.修改S最后一个...原创 2019-11-05 19:15:11 · 211 阅读 · 0 评论 -
最长公共子序列 O(NlogN) 做法
题意:略思路:O(NlogN)1.相同长度的子序列仅需要保存最小的一个;2.且随着长度的增长,该最小值递增; 证明:可用反证法. 假设长度为 5 的最小值大于长度为 6 的最小值,则长度为 6 的序列的倒数第二个数也就是 某长度为 5 的序列最小值,显然和我们保存的长度为 5 的最小值矛盾,故证明成立。3.故有解法: ...原创 2019-11-05 19:11:16 · 485 阅读 · 0 评论 -
区间dp(乘积和最小)
题意:给定一组n个元素的数列,按顺序每次从2~n-1中随机去除一个点,得到一个花费:a[p]*a[p-1]*a[p+1],问应该按照怎样的顺序删点,可以得到一个最小的乘积和,求该和。分析:dp[i][j]表示i~j的最小值,入门练习不解释,,,1、易知,若能出现上述运算规则,则区间长度至少应该为3,因此,区间长度为3时的所有状态可以作为递推初始值。2、当区间长度为4时,会出现两...原创 2018-08-30 00:32:50 · 542 阅读 · 0 评论 -
区间dp(三维)——数轴餐馆送餐
题意:给定餐馆以及顾客位置,从餐馆出发给顾客送餐,并最终回到餐馆,每个顾客有一个权值,每等一分钟,不满意值加对应权值,问怎样送餐能使总的不满意度最小。分析:区间dp,怎么的出来的暂且不考虑。 考虑的餐馆的相对位置,其可能处于顾客之间,也可能处于所有顾客的某一边。对于后者,无疑按照1->2->3->4......的顺序送即可,而对于前者,可以送一段左边的...原创 2018-09-03 21:10:53 · 245 阅读 · 0 评论 -
树形dp求树直径、两次dfs求树直径
树形dp求树直径:#include<bits/stdc++.h>#include<ctime>#define ll long longusing namespace std;const int N=100010,M=1000010;int head[N];int ver[M];int edge[M];int Next[M];bool v[N];in...原创 2018-12-10 22:37:00 · 1375 阅读 · 0 评论 -
HDU 2089 不要62(数位dp模板题)
思路: 递推求数位dp思路: ①根据限制条件,预处理f【i】【j】数组。 ②对于原数字从最高位开始枚举,根据限制条件求出上一位取封顶数字时,由后面位置组成的满足条件的数的数目。AC代码:/*Wjvje*/#include <cstdio>#include <cmath>#include &l...原创 2019-01-28 22:40:41 · 134 阅读 · 0 评论 -
概率dp
原文链接:https://www.cnblogs.com/hua-dong/p/8166093.html转载。。。。。。。。一:Uva12230Crossing Rivers (数学期望)题目大意:有个人每天要去公司上班,每次会经过N条河,家和公司的距离为D,默认在陆地的速度为1,给出N条河的信息,包括起始坐标p,宽度L,以及船的速度v。船会往返在河的两岸,人到达河岸时,船的位...原创 2019-04-03 21:19:16 · 397 阅读 · 0 评论 -
TYVJ 1933 绿豆蛙的归宿(概率dp)
题目链接:https://www.luogu.org/problemnew/show/P4316题意翻译「Poetize3」题目背景随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿。题目描述给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。 到达每一个顶点...原创 2019-04-02 22:00:17 · 153 阅读 · 0 评论 -
AtCoder Regular Contest 060 (C - 高橋君とカード / Tak and Cards)背包dp,K-sum?
题目链接:https://atcoder.jp/contests/arc060/tasks/arc060_a题目描述: C - 高橋君とカード / Tak and CardsTime Limit: 2 sec / Memory Limit: 256 MBScore ...原创 2019-05-19 17:58:48 · 368 阅读 · 0 评论 -
E - キャンディーとN人の子供 / Children and Candies(DP算贡献)
题目描述: E - キャンディーとN人の子供 / Children and CandiesTime Limit: 4 sec / Memory Limit: 256 MBScore :800800pointsProblem Statement12:17 (UTC): The sample input ...原创 2019-05-19 19:56:44 · 1126 阅读 · 0 评论 -
POJ 3661 Running(线性dp)
RunningTime Limit:1000MS Memory Limit:65536K Total Submissions:8139 Accepted:3040 DescriptionThe cows are trying to become better athletes, so Bessie is running on a track ...原创 2019-06-08 15:43:55 · 116 阅读 · 0 评论 -
1636 教育改革(dp,背包变形~变得有点大,三维)
题目描述:1636 教育改革最近A学校正在实施教育改革。一个学年由n天组成。A学校有m门课程,每天学生必须学习一门课,一门课程必须在一天内学习完。在学习完第i门课程后,学生们会收到xixi个家庭作业,其中xi是区间[ai,bi]里的一个整数xi是区间[ai,bi]里的一个整数。每门课还有一个属性,就是复杂度cici。A学校现在要制他们的课程表,具体要求如下...原创 2019-07-25 22:12:50 · 188 阅读 · 0 评论 -
1657 电子龟(三维DP,动态规划的阶段、状态、决策再理解)
题目描述:1657 电子龟 电子龟的行动,是沿着直线左右走动的。他能够接受两种指令,“T”(向后转,即如果面向左,改成向右;否则就向左)和“F”(向当前面朝的方向往前移动一个单位距离)。 现在给出一串指令,让电子龟来执行。你必须改动n次指令,一次改变一个(一个指令可以改动多次)。使得电子龟执行完所有的指令后,离起始点最远。样例解释:在第一个样...原创 2019-07-27 00:37:57 · 691 阅读 · 0 评论 -
Codeforces Round #148 (Div. 2) E. World Eater Brothers(思维+树形dp)
E. World Eater BrothersYou must have heard of the two brothers dreaming of ruling the world. With all theirprevious plans failed, this time they decided to cooperate with each other in order to...原创 2019-08-05 15:26:27 · 197 阅读 · 0 评论 -
2487 小b和环 (简单二维递推DP,环形处理)
2487 小b和环小b有一个长度为n的环,每个点上有个数字。现在请你选出一些点,满足选出的任意两个点在环上不相邻,且选出的点的数字之和最大,你只需输出这个最大值。收起输入第一行输入一个数n,其中0<n≤50000;第二行输入n个非负整数,第i个数表示环上顺时针第i个点上的数字,以空格隔开。0<=每个点上的数字<=10000。输出输出一个...原创 2019-07-28 16:01:29 · 300 阅读 · 0 评论 -
BZOJ 3450 概率dp,经典?
「BZOJ3450」JoyOI1952 EasyDescription某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(我们来简化一下这个游戏的规则有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a*a分,comb就是极大的连续o。比如ooxxxxooooxxx,分数就是2*2+4*4=4+16=20。Seven...原创 2019-08-06 09:02:33 · 374 阅读 · 0 评论 -
HDU Problem E [ 最长下降子序列 堆箱子]——基础dp模板题变式
Problem ETime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 9 Accepted Submission(s) : 5Problem DescriptionA group of researchers are designing an ...原创 2018-03-29 23:10:53 · 216 阅读 · 0 评论 -
区间dp(一群屌丝进栈)
题目大意:给出n个排好队的屌丝,每个屌丝有一个权值,当第i个屌丝在第k个位置时,将产生一个生气值=(k-1)*权值,他们之间的顺序可以通过一个栈调整,问怎样排序能使产生的生气值之和最小。分析:首先,这个栈有什么用呢?它可以把一个屌丝调整到该屌丝之后的所有位置上去。1、状态:区间dp,二维数组表示区间。2、递推关系:入门级专题训练中难点一般在于花费的确定,(ps:说到底好像是断点...原创 2018-08-30 00:00:19 · 183 阅读 · 0 评论 -
区间dp入门(括号匹配)
题目一:括号合法匹配:题意:给定一个由()[]四种符号组成的字符串,求其中合法满足合法匹配的最长子串的长度。合法匹配有如下几种形式:()、[]、(合法串)、[合法子串]、合法子串+合法子串+....(如()[][][]()[])。分析:dp问题三个重要环节:描述状态、状态转移方程、递推边界。区间dp的话状态描述一般为二位数组,表示起点和终点。因为是入门,我们暂且假设已经分析出该...原创 2018-08-28 23:59:05 · 2083 阅读 · 0 评论 -
POJ 3254 Corn Fields(位运算,状压DP)
Corn FieldsTime Limit: 2000MS Memory Limit: 65536K Total Submissions: 19184 Accepted: 10073 DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by...原创 2018-07-20 00:36:30 · 189 阅读 · 0 评论 -
HDU Problem J [ 一只小蜜蜂 ]——基础dp斐波那契数列
Problem JTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 23 Accepted Submission(s) : 8Problem Description有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房...原创 2018-03-31 22:53:41 · 262 阅读 · 0 评论 -
HDU Problem I [ 爬楼梯 ]——基础dp斐波那契数列
Problem ITime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 8 Accepted Submission(s) : 5Problem Description有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有...原创 2018-03-31 22:46:39 · 343 阅读 · 0 评论 -
HDU Problem H [ 大魔王 矩阵三角模型变式 ]——基础dp变式
Problem HTime Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 31 Accepted Submission(s) : 11Problem Description穿过幽谷意味着离大魔王lemon已经无限接近了!<br>可谁能想...原创 2018-03-31 22:40:37 · 153 阅读 · 0 评论 -
HDU Problem G [ 数塔问题变式 天上掉馅饼 ]——基础dp
Problem GTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 17 Accepted Submission(s) : 9Problem Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把...原创 2018-03-31 22:29:14 · 161 阅读 · 0 评论 -
HDU Problem F [ 数塔问题 ]——基础dp模板题
Problem FTime Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 6 Accepted Submission(s) : 5Problem Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:<br&...原创 2018-03-29 23:33:26 · 211 阅读 · 0 评论 -
状压dp——[ 2005Noip提高组第二题 ] 过河
题目描述在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数(包括S,T)。...原创 2018-02-20 13:21:39 · 175 阅读 · 0 评论 -
普通DP——[ 2008NOIP普及组 ]传球游戏
题目描述上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以...原创 2018-02-19 23:00:00 · 259 阅读 · 0 评论 -
区间dp——[2003NOIP普及组]数字游戏
题目描述丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。游戏的要求是使你所得的k最大或者最小。例如,对于下面这圈数字(n=4,m=2):要求最小值时,((2-1) mod...原创 2018-02-14 21:09:39 · 723 阅读 · 0 评论 -
区间dp—— [NOI1995]石子合并
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入输出格式输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式:输出共2行,第1行为最小得分,第2行为最大得分.输入...原创 2018-02-11 23:00:10 · 277 阅读 · 0 评论 -
HDU Problem K [ 骨牌铺方格 ]——基础dp斐波那切数列
Problem KTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 10 Accepted Submission(s) : 7Problem Description在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方...原创 2018-03-31 23:05:03 · 133 阅读 · 0 评论 -
HDU Problem L [ 一头母牛 ]——基础dp斐波那契数列变式题
Problem LTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 11 Accepted Submission(s) : 6Problem Description有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一...原创 2018-03-31 23:20:14 · 203 阅读 · 0 评论 -
HDU 3339 In Action (01背包+最短路)
Problem DescriptionSince 1945, when the first nuclear bomb was exploded by the Manhattan Project team in the US, the number of nuclear weapons have soared across the globe.Nowadays,the crazy boy in FZ...原创 2018-05-26 00:04:32 · 298 阅读 · 0 评论 -
HDU Problem C [ 最长上升子序列 求和]——基础dp模板题
Problem CTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 8 Accepted Submission(s) : 6Problem DescriptionNowadays, a kind of chess game called “S...原创 2018-03-28 23:35:38 · 219 阅读 · 0 评论 -
HDU Problem B [ 最长公共子序列 ]——基础DP
应该可以当做模板题吧,关键还是找状态的来源以便确定状态转移方程,其次想说一下,字符串的strlen函数效率还是比较低的,不要现用现调用,最好求出一次后就记录下来。AC代码:#include<bits/stdc++.h>using namespace std;char a[1001],b[1001];int f[1001][1001];int main(){ w...原创 2018-03-28 00:04:37 · 141 阅读 · 0 评论 -
HDU Problem D [ Humble number ]——基础DP丑数序列
Problem DTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 7 Accepted Submission(s) : 3Problem DescriptionA number whose only prime factors are 2,...原创 2018-03-27 22:51:56 · 305 阅读 · 0 评论