动态规划
F-hwak
这个作者很懒,什么都没留下…
展开
-
hdoj 4597 Play Game
sum(i, j, k, l) 表示地一个序列[i,j]段之和与第二个序列的[k,l]段之和的和。原创 2014-11-12 19:31:30 · 490 阅读 · 0 评论 -
hdoj 1024 Max Sum Plus Plus
给你一个序列,是m个子序列的和最大原创 2014-10-30 15:58:31 · 525 阅读 · 0 评论 -
nyoj61 传纸条
题意:给你一个n*m的格子,每个点有一个权值,从(1,1) 到(n,m),只能向下或向右走,两条路线同时走,不能有交叉,求其权值和最状态转移方程很容易推出来dp[x1][y1][x2][y2]=max(dp[x1-1][y1][x2-1][y2],dp[x1-1][y1][x2][y2-1],dp[x1][y1-1][x2-1][y2],dp[x1][y1-1][x2][y2-1])+ma原创 2014-11-25 12:14:11 · 729 阅读 · 0 评论 -
manacher算法
在O(n)的时间复杂度之内求出一个最长的回文子字符串的算法hdoj 3068 http://acm.hdu.edu.cn/showproblem.php?pid=3068#include#include#includeusing namespace std;#define N 110000+10int p[2*N];char s0[N],s[2*N];void init()原创 2015-03-08 16:41:51 · 358 阅读 · 0 评论 -
hdoj 1506&&1505(City Game) dp
// l表示从l[i]到i连续大于a[i]的最远左区间,r表示从i到r[i]连续大于a[i]的最远又区间DP 找出 a[i] 的最远左区间和最远右区间与自己连着的比自己大的数的长度 , 然后用这个长度乘以 a[i], 乘积最大的那个就是答案hdoj 1506#include#include#includeusing namespace std;#define N 100原创 2015-03-12 15:38:23 · 665 阅读 · 0 评论 -
poj 3661 Running
//牛在第i分钟可以休息,可以跑,跑的距离是a[i];,牛有一个疲劳值,刚开始疲劳值为0,每跑一分钟疲劳值就会增加1,疲劳值不能超过m//牛每休息一分钟,疲劳值就会减少1,并且一旦休息,就会休息到疲劳值为0#include#include#include#include#include#include#define N 10000+10#define inf 0xffffff原创 2015-05-06 12:51:52 · 366 阅读 · 0 评论 -
poj 3168 Treats for the Cows 区间dp
题意:给出的一系列的数字,可以看成一个双向队列,每次只能从队首或者队尾出队,第i个出队就拿这个数乘以i,最后将和加起来,求最大和由里向外推,dp[i][j],表示从队首取了前i个,从队尾取了后j个,枚举i,j状态转移方程dp[i][j]=max(dp[i-1][j]+v[i]*(i+j),d[i][j-1]+v[n-j+1]*(i+j));#include #include #in原创 2015-05-07 08:59:59 · 361 阅读 · 0 评论