![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
irvix
Sacrifice what we want now for what we want eventually.
展开
-
POJ 2955 括号匹配
#include <string>#include <cstring>#include <cstdio>#include <cstdlib>#include <queue>#include <cmath>#include <vector>#include <iostream>#i...原创 2019-11-05 20:10:12 · 137 阅读 · 0 评论 -
洛谷1002 过河卒 DP
#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <cstdlib>#include <set>#include <vector>#include <map>#inc...原创 2019-09-28 22:05:00 · 96 阅读 · 0 评论 -
2018 CCPC吉林 D题 The Moon 期望DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6558题面:题解:简单的期望DP,画一个流程图后套用公式即可。dp数组用1000‰代替100%。代码:#include <iostream>#include <cstdio>#include <cstdlib>#include <algo...原创 2019-07-17 17:06:44 · 206 阅读 · 0 评论 -
区间DP入门题 51Nod 1021 石子合并
题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1021题意:给出n堆石子,要把这n堆石子合并成1堆,每次只能选相邻的两个合并成一堆,每次合并的代价是这两堆石子的总数之和,问最少代价是多少。解析:一个区间的最小合并代价是由这个区间内的子区间合并的最小值得到,并且要加上他们之前所花费的代价sum[j] - sum[i-1]...原创 2019-04-24 20:55:17 · 135 阅读 · 0 评论 -
Codeforces 1132F Clear the String 区间DP
题目:http://codeforces.com/problemset/problem/1132/F题意:给出一个字符串s,每次可以删除其中一个由相同字符组成的子串,问最少需要几步?样例:Sample Input5abacaSample Output3Sample Input8abcddcbaSample Output4解析:区间两端相等,就...原创 2019-04-24 19:48:52 · 178 阅读 · 0 评论 -
HDU 1114 Piggy-Bank 完全背包
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1114题意:给出一个小猪存钱罐,存钱罐里不知道有多少钱,但是你知道硬币的总重量。再给出N种硬币的重量和价值,问最坏的情况下,存钱罐里所有硬币的总价值是多少?题解:容量一定,N种货币,没有数量限制,裸的完全背包。结果要找的是最小值,那么我们就把dp数组初始化为INF,这样求出来的结果就是最小值。代...原创 2019-04-24 16:38:44 · 92 阅读 · 0 评论 -
Poj 2378 Tree Cutting 树形DP
题意:给出一颗总节点为n的树,在树上找出所有满足条件 “删除该点后形成的几颗子树的节点数量都小于等于n/2” 的节点。题解:从根节点开始遍历,对于每个节点,维护两个值: 1.所有子树节点数的最大值childmax 2.所有子树的节点数之和(包括这个节点自身)sum最后对所有节点进行遍历,满足:childmax <= n/2 &&...原创 2019-04-19 17:34:13 · 145 阅读 · 0 评论 -
HDU1257 考验思维的LIS
Sample Input8 389 207 155 300 299 170 158 65Sample Output2没看题解前,我的思路和这位博主的思路几乎一样,但越写越复杂,总觉得不对劲,只好看一眼题解,发现居然是LIS!不看题解的话,还真是想不出来,先写下来慢慢悟吧#include <cstdio>#include <cstring&...原创 2019-04-19 16:03:01 · 265 阅读 · 0 评论 -
Codeforces 1155D Beautiful Array
传送门题目原型:51Nod1049+个人题解。题意:给你一个数列,你可以先选出一个区间(长度可以是0),将这个区间内的所有数乘以x,然后找出整个数列的最大连续子串和。题解:采用动态规划的思想,将每一个数字的位置设置三种状态。 dp[i][0],这个状态储存最基础的最大连续子段和,这个值等于#include <cstdio>#includ...原创 2019-04-23 18:10:18 · 158 阅读 · 0 评论 -
第五届CCPC、河南省赛-网络模拟赛 B题icdbound的商店
题意:给你斐波那契数列的前15项(1,2,3,5,8...),给出一个和SUM,从这15个数字中取出一些数字,使他们的和=SUM,问有多少种方案。解析:完全背包#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include...原创 2019-04-11 22:42:08 · 117 阅读 · 0 评论 -
计蒜客习题:删除最小元素
开一个二维dp数组dp[10005][3],第二维存储的是这个数列的两种状态所对应的最大值,和LIS思路比较像。开始的时候忽视了全部降序的情况,后来把两个维度全部算一遍就出来了。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>...原创 2019-04-08 18:24:44 · 221 阅读 · 0 评论 -
河南省第十一届ACM竞赛 C山区修路
传送门题面:画一个表格,一目了然代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <iostream>#include <algorithm>#includ...原创 2019-04-08 17:16:25 · 266 阅读 · 0 评论 -
HDU1176 免费馅饼--DP
反着推比正着推方便一些,根据数据范围直接开一个二维x,T数组比只用一维存便于查找。#include <iostream>#include <algorithm>#include <string>#include <cstring>#include <vector>#include <cmath>#i...原创 2019-04-10 17:16:30 · 128 阅读 · 0 评论 -
51Nod 1050 循环数组最大子段和
传送门题意:略解析:类似于1049题,不同的是这是一个循环数组。其实可以反过来看,我们在一个圆圈里找到了一段子段,它的和最大,那么剩下的一段和就是最小的。于是可以分成两种情况:一种是子段不含首尾,用一般方法求。另一种是子段包含首尾,中间空缺(或者全部包含),这种既可以按最小子段和求,也可以把全部的数取反,再求出最大值,也就得出原数组最小值的相反数,则sum+(-小) = 大。代码:...原创 2018-12-25 22:10:48 · 98 阅读 · 0 评论 -
51Nod 1049 最大子段和 DP
任意门题意:略解析:动态规划,dp[i]代表以a[i]结尾的子段的最大和,最后找出最大值即可。 动态规划的思想就是利用之前的状态推出之后的状态,状态具有无后效性。 对这个题来说,分为两步,每一步就是一个状态的转移方式: 每一个状态dp[i] 都是从两步中选取最优的一个,一步是延续上一个子段,另一个是新起一个子段,...原创 2018-12-25 21:03:36 · 142 阅读 · 0 评论 -
51Nod 1007 01背包
传送门题意:把n个数分成两组,使得这两组数的差值最小 解析:01背包的变形。分成两组,也就相当于是挑出一部分,剩下一部分。这样我们就可以把问题看做01背包。即从n个数里选一些数放入背包,背包最大容量是sum/2。这里采用的是空间复杂度为O(V)的算法,从每个层次最大容量向前计算。#include <stdio.h>#include <string.h>#i...原创 2018-12-23 03:54:35 · 128 阅读 · 0 评论 -
DP水题,取数求和
ZZULIOJ 2467题目大意:有n个整数,从中选取一些数使得它们的和最大,选取的数不能相邻,问最大值解析:考虑边界情况,n为1,2时直接输出结果。 n>=3时,初始化dp[1,2] = a[1,2]; dp[2] = max(a[0]+a[2],a[1])。 对于n>=4以上的情况,dp[i] = max(dp[i-2] + dp[i-3]) + a[i]; 即...原创 2018-12-19 20:13:09 · 150 阅读 · 0 评论