![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
仰望蓝天xz
这个作者很懒,什么都没留下…
展开
-
01背包 牛客华为机试购物单
#include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <set> #include <queue> #include <math.h> #include <map> #include <algorithm> #include <stack> #define ll long..原创 2022-04-14 19:59:58 · 330 阅读 · 0 评论 -
POJ 1458 最长公共子序列dp
#include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <set> #include <math.h> #define eps 1e-14 #define pi acos(-1) #define ll long l...原创 2019-10-04 22:26:23 · 121 阅读 · 0 评论 -
[POJ][1015]Jury Compromise 正确做法
dp[i][j]=k 表示选取 i 个人,其评价差之和为 j 的所有方案中总评价之和最大为 k 三重循环,找出各种人数在各个评价差上的最大总评价之和,评价差最多就m202,因为是-20m到20m之间,所以区间平移,计算出来最大区间也不过800。 错误做法中,path存储路径有缺陷,当要选择6个人时,碰到选择5个人的方案有两种评价差的和一样小,总评价的和一样大,这是path只会记录一种方案,而如果答...原创 2019-10-06 01:54:29 · 296 阅读 · 0 评论 -
Help Jimmy POJ - 1661 dp
dpl[i]=x 表示到达第 i 个阶梯的左端点需要的最少时间,dpr[i]=x 相应的久是到达第 i 个阶梯的右端点所需要的最少时间,对于第 i 个阶梯,往下搜寻距离在Max之内的阶梯,假设找到阶梯 j ,阶梯 j 可以使接住从阶梯 i 左端点跳下的人 ,那么到达阶梯 j 左端点的最短时间就是 dpl[j]=min(dpl[j] , 高度差加上走到 j 左端点的距离) dpr 也是一样的,每...原创 2019-10-06 17:02:48 · 119 阅读 · 0 评论 -
Max Sum Plus Plus HDU - 1024 dp+滚动数组
dp[i][j]=k 表示前 i 个数字在选取第 i 个数字的情况下取出 j 段的最大值为 k 则分两种情况,当第 j 个数字是单独为一段时,当第 i 个数字是跟在 i-1 后面时 所以 dp[i][j] = max( max(dp[0~i-1][j-1]) , dp[i-1][j] ) + a[j] 因为 dp[i][j] 的求解只需要第 j 列和第 j-1 列,而且max(dp[0~i-1][...原创 2019-10-08 23:45:21 · 99 阅读 · 0 评论