
动态规划
文章平均质量分 84
bupt_xycr
欢迎关注我的公众号:算法入门
熟悉
c++
caffe
pytorch
mxnet
tensorflow
深度学习
自动驾驶
点云
图像处理
编程比赛
python
java
展开
-
[dp]Educational Codeforces Round 12 C. Simple Strings
题目zscoder loves simple strings! A string t is called simple if every pair of adjacent characters are distinct. For example ab, aba, zscoder are simple whereas aa, add are not simple.zscoder is giv...原创 2018-07-09 10:07:15 · 249 阅读 · 2 评论 -
POJ 2411 Mondriaan\'s Dream
adMondriaan's DreamTime Limit: 3000MSMemory Limit: 65536KTotal Submissions: 13211Accepted: 7700DescriptionSquares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after pr原创 2016-04-21 19:03:48 · 429 阅读 · 0 评论 -
POJ 1185 炮兵阵地
地址炮兵阵地Time Limit: 2000MSMemory Limit: 65536KTotal Submissions: 21629Accepted: 8400Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(原创 2016-04-21 19:03:45 · 319 阅读 · 0 评论 -
POJ 3254 Corn Fields
Corn FieldsTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 9744Accepted: 5147DescriptionFarmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) sq原创 2016-04-21 19:03:39 · 270 阅读 · 0 评论 -
POJ 2533 LIS N2
状态转移方程 dp[i]=max(dp[i],dp[j]+1); dp[i]为以第i个数结尾的能得到的最长的上升子序列。1http://poj.org/problem?id=2533Longest Ordered SubsequenceTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 34360Accepted: 15083Desc原创 2016-04-21 18:56:55 · 235 阅读 · 0 评论 -
HDU 1087 Super Jumping! Jumping! Jumping!
http://acm.hdu.edu.cn/showproblem.php?pid=1087//状态转移方程dp[i]=max(dp[i],dp[j]+a[i]); (1//当且仅当a[i]>a[j]&&dp[i](1Super Jumping! Jumping! Jumping!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65原创 2016-04-21 18:56:53 · 307 阅读 · 0 评论 -
HDU 1505City Game
http://acm.hdu.edu.cn/showproblem.php?pid=1505City GameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4823 Accepted Submission(s): 2064Probl原创 2016-04-21 18:56:50 · 233 阅读 · 0 评论 -
HDU 1506Largest Rectangle in a Histogram
http://acm.hdu.edu.cn/showproblem.php?pid=1506解题思路 用l[i]存放a[i]连续的比他大的最左边的数的位置 r[i]存放a[i]连续的比他大的最右边的数的位置a[i]*(r[i]-l[i])就是第i个能得到的最大面积;#include#include#include#include#include#include#include#include#i原创 2016-04-21 18:56:12 · 199 阅读 · 0 评论 -
HDU 1003Max Sum
http://acm.hdu.edu.cn/showproblem.php?pid=1003题目很hdu1031一样状态转移方程dp[i]=max(a[i],dp[i-1]+a[i]) 思路一样。#include#include#include#include#include#include#include#include#include#include#include#include #inc原创 2016-04-21 18:56:09 · 254 阅读 · 0 评论 -
HDU 1231最大连续子序列
http://acm.hdu.edu.cn/showproblem.php?pid=1231状态转移方程dp[i]=max(a[i],dp[i-1]+a[i]) dp[i]代表前i个数能构成的最大和#include#include#include#include#include#include#include#include#include#include#include#include #in原创 2016-04-21 18:56:07 · 214 阅读 · 0 评论 -
HDU 1864最大报销额
http://acm.hdu.edu.cn/showproblem.php?pid=1864这题绝对水,只是当时题意读错了,只要处理好A B C的数目问题,就OK了,01背包,cost=value 对总价钱(100*q)dp状态转移方程 dp[j]=max(dp[j],dp[j-v[i]]+v[i]);进行了空间优化#include#include#include#include#include原创 2016-04-21 18:56:04 · 354 阅读 · 0 评论 -
HDU 2955 Robberies
http://acm.hdu.edu.cn/showproblem.php?pid=2955题目大意:给出N 个银行拥有的钱数和被抓的概率 要求在被抓概率小于P时能偷到的最多钱数。01背包问题,这里我们把银行的价值当作背包的容量,而成功他偷窃的概率当作价值。状态转移方程dp[i][j]=Max(dp[i-1][j]+dp[i-1][j-v[i]]*w[i]) dp[i][j]代表在前i个原创 2016-04-21 18:55:59 · 319 阅读 · 0 评论 -
01 背包问题
http://acm.hdu.edu.cn/showproblem.php?pid=260201 背包问题的求解设大V为背包的容量,n为背包的个数v[i],w[i]分别代表第i个物品的体积和价值那么可得状态转移方程为dp[i][j]=max(dp[i-1][j],dp[i-1][j-v[i]]+w[i])i代表前i个物品,j代表当前体积,即在前i个物品中选择几个物品放到容量为j的背包中能得到的最大原创 2016-04-21 18:55:51 · 214 阅读 · 0 评论 -
最长上升子序列(LIS)
http://poj.org/problem?id=2533LIS裸题#include#include#include#include#include#include#include#include#include#include#include#include #include ///poj2533#define maxn 1000+5#define ull unsigned long long原创 2016-04-21 18:53:56 · 216 阅读 · 0 评论 -
Post Office
http://poj.org/problem?id=1160这道题还是很难的(for me)看了题解才弄懂解题思路:动态规划分解出最优子结构 设dp[i][j]为i个邮局控制前j个村庄 例如i=2 j=4的时候其下有 (1,1)(2,3) (1,2)(2,2),(1,3)(2,1)这3种情况,我们取其中最小的那个。不难得出状态转移方程 dp[i][j]=min(dp[i-1][k]+cost[原创 2016-04-21 18:53:51 · 657 阅读 · 0 评论 -
Piggy-Bank 完全背包问题
http://acm.hdu.edu.cn/showproblem.php?pid=1114完全背包求最小值常规解法超时(没优化)#include#include#include#include#include#include#include#include#include#include#include#include #include #define maxn 100000+5#define原创 2016-04-21 18:53:45 · 395 阅读 · 0 评论 -
How many ways 记忆化搜索
http://acm.hdu.edu.cn/showproblem.php?pid=1978第一次见到dp记忆化搜索这题可以分为两种DP方式,一种是当前的这个点可以到达其他点的方法数,二是 能到达当前点的方法数。第一种方法#include#include#include#include#include#include#include#include#include#include#include#原创 2016-04-21 18:53:42 · 340 阅读 · 0 评论 -
搬寝室
http://acm.hdu.edu.cn/showproblem.php?pid=1421状态方程为dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]))///////dp[i][j]表示在前i个物品中选j对,由于n可能不能被k整除所以会分为在前i-1个物品中选j对和在前i个物品中选j对两种情况我们选其中最小的,最优子问原创 2016-04-21 18:53:37 · 206 阅读 · 0 评论 -
Common Subsequence(LCS)
http://acm.hdu.edu.cn/showproblem.php?pid=1159动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。动态规划算法分以下4个步骤:描述最优解的结构递归定义最优解的值按自底向上的方式计算最优解的值 //此3步构成动态规划解原创 2016-04-21 18:53:35 · 263 阅读 · 0 评论 -
免费馅饼
http://acm.hdu.edu.cn/showproblem.php?pid=1176题目大意:略解题思路:这道题和数塔问题挺像,关键一步是找到状态方程dp[i][j]=max(dp[i+1][j],max(dp[i+1][j+1],dp[i+1][j-1]))+a[i][j]这里i是时间秒j是位子,逆序递推得到的dp[5][0]就是答案了#include#include#include#i原创 2016-04-21 18:53:21 · 251 阅读 · 0 评论 -
数塔
http://vjudge.net/contest/view.action?cid=50286#problem/I数塔问题:自底向上地推 dp[1][1]就是答案状态转移方程为dp[i][j]=mp[i][j]+max(dp[i+1][j+1],dp[i+1][j])。dp[i][j]表示以i j为起点走到最底层所得到的最大值。#include#include#include#include#in原创 2016-04-21 18:53:18 · 270 阅读 · 0 评论 -
命运
http://acm.hdu.edu.cn/showproblem.php?pid=2571题目大意:略;解题思路:先找到状态方程sum[i][j]=max(sum[i][j-1],sum[i-1][j])+mp[i][j];(这是在不跳格的情况下的额) 再加上跳格的情况 sum[i][j]=max(sum[i][j],sum[i][j/k]+mp[i][j]);最后输出sum[n][m]原创 2016-04-21 18:53:16 · 219 阅读 · 0 评论 -
HDU 2602 Bone Collector
http://acm.hdu.edu.cn/showproblem.php?pid=2602题目比较简单,学过01背包的都应该能过#include#include#include#include#include#include#include#include#include#include#include#include #include #define maxn 10000+5#define u原创 2016-04-21 18:53:13 · 205 阅读 · 0 评论 -
【转载】HDU 2844.Coins(多重背包转01背包)
Link Problem Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided to buy a very nice watch原创 2016-04-21 18:52:52 · 265 阅读 · 0 评论 -
背包问题模版
一、01背包: http://acm.hdu.edu.cn/showproblem.php?pid=2844#define N ..///N这个值是根据具体的题目来定的int v; ///v为总的容量int dp[N];void ZeroOnePack(int cost,int weight){ for(int j=v;j>=cost;j--) ///注意是逆序的 dp[j]原创 2016-04-21 18:52:49 · 291 阅读 · 0 评论 -
动态规划入门 DP基础
1, http://poj.org/problem?id=1163#includeusing namespace std;int main(){ int a[101][101],i,j,d[101][101]; int n; while(cin>>n&&n) { for(i=1;i for(j=1;j cin>>a[i][j]; for(j=1;j for(i=n-1;i>=1;i--原创 2016-04-21 18:52:41 · 761 阅读 · 0 评论