![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
愈努力俞幸运
这个作者很懒,什么都没留下…
展开
-
dp
HDU’s nn classrooms are on a line ,which can be considered as a number line. Each classroom has a coordinate. Now Little Q wants to build several candy shops in these nn classrooms. The total cost con...原创 2018-04-26 20:22:34 · 125 阅读 · 0 评论 -
run 二维dp
链接:https://www.nowcoder.com/acm/contest/140/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述White Cloud is exercising in the playground.White Cloud can wa...原创 2018-07-21 20:24:41 · 185 阅读 · 0 评论 -
区间dp
poj 1390题意:一排有颜色的方块,每次可以消除相邻的颜色相同的块,得分为方块个数的平方,消除后剩下的方块会合并,问怎样消除方块使得总得分最大。方法:合并初始相邻相同的块,得到颜色数组c和对应的长度len,dp[i][j][k]表示i~j区间,与后面k个相同颜色块一起消除得分的最大值(当然k个块的颜色必须与j相同),考虑len[j]和k这一段怎么消除,有两种可能:1.单独消除,dp[i][j]...原创 2018-06-10 16:43:13 · 159 阅读 · 0 评论 -
区间dp
game of sum题意:有n个数字排成一条直线,然后A、B来玩游戏, 每个小伙伴每次可以从两端(左或右)中的任意一端取走一个或若干个数(获得价值为取走数之和), 但是他取走的方式一定要让他在游戏结束时价值尽量的高,最头疼的是两个小伙伴都很聪明,所以每一轮两人都将按照对自己最有利的方法去取数字,请你算一下在游戏结束时,先取数的人价值与后取数人价值之差(不要求绝对值)。用dp[i][j]表示剩下的...原创 2018-06-01 02:01:32 · 118 阅读 · 0 评论 -
poj 1651区间dp
poj 1651题意:给出一个序列,要求取走序列中出首尾之外的数字,问最小花费。取走第k个的花费a[k-1]*a[k]*a[k+1]。//#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#includ...原创 2018-06-05 22:38:11 · 90 阅读 · 0 评论 -
poj 3280 区间dp
poj 3280题意:输入一个含n个字母的长度为m的字符串,接下来输入n个字母,每个字母后面两个整数,分别表示删掉这个字母的代价,和添加这个字母的代价,求把该字符串变成回文串的最小代价。//#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#in...原创 2018-06-05 21:21:08 · 126 阅读 · 0 评论 -
区间dp
题目大意:给定一根已知长度的木棍,给定n个切割点,要求按照切割点切割木棍,花费按照切割的木棍长度计算,例如有一根长10的木棍,切割点为2、4、7,如果按照2、4、7的顺序切割,花费将是10 + 8 + 6 = 24,如果按照4、2、7的顺序切割,那么花费将是10 + 4 + 6 = 20,切割顺序可以任意,要求花费最小#include<bits/stdc++.h>using name...原创 2018-06-05 00:16:49 · 142 阅读 · 0 评论 -
区间dp
区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小的区间的最优值得到的。将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举她们的组合,求合并后的最优值。dp[i][j](1<=i<=j<=n)表示区间[i,j]内的数字相加的最小代价,最小区间dp[i][i]=0(一个数字无法合并,所以代价为零)每次用变量k(i<=k<=j-1)将区间分...原创 2018-06-05 00:01:42 · 112 阅读 · 0 评论 -
背包-01背包
01背包:有n种物品与承重为m的背包。每种物品只有一件,每个物品都有对应的重量weight[i]与价值value[i],求解如何装包使得价值最大。dp(i,v)表示前i个物体(包括第i个)面对容量为v的背包的最大价值,c[i]代表物体i的重量,w[i]代表物体i的价值;如果第i个物体不放入背包,则背包的最大价值等于前i-1个物体面对容量v的最大价值;如果第i个物体选择放入,则背包的最大价值等于前i...原创 2018-05-12 23:42:41 · 146 阅读 · 0 评论 -
build shop
building shop题意:有n个教室,要在n个教室中建一些糖果屋,第i个教室建糖果屋的花费ci,不建糖果屋的教室的花费是此教室左边离它最近的糖果屋与他的距离。思路:类似于01背包,dp[i][1]表示前i个教室第i个教室建糖果屋的最小花费,则dp[i][1]=min(dp[i-1][0],dp[i-1][1])+c[i];dp[i][0]表示前i个教室第i个教室不建糖果屋的最小花费,则需要找...原创 2018-05-18 03:38:23 · 153 阅读 · 0 评论 -
数字金字塔
http://poj.org/problem?id=1163解析:从底到顶到这推//#include<bits/stdc++.h>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;int mai...原创 2018-08-07 11:09:11 · 317 阅读 · 0 评论