题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3905

思路:dp[i][j]表示前i分钟,睡了j分钟收获的的最大价值,并记tmp_dp[i][j]为从i开始前的连续L分钟都是醒着的,并且睡了j分钟所能得到的最大价值,于是状态转移方程可以表示为:

第 i 分钟睡dp[i][j]=dp[i-1][j-1];

第 i 分钟醒着 dp[i][j]=max{dp[i][j],tmp_dp[i][j]}

而tmp_dp[i][j]的转移方程为tmp_dp[i][j]=max(tmp_dp[i-1][j]+a[i],dp[i-l][j]+sum[i]-sum[i-l]);

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int n,m,l;
int dp[][];
int tmp_dp[][];
int sum[],a[]; int main()
{
while(~scanf("%d%d%d",&n,&m,&l)){
sum[]=;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
sum[i]=sum[i-]+a[i];
}
memset(dp,,sizeof(dp));
memset(tmp_dp,,sizeof(tmp_dp));
for(int i=;i<=n;i++){
for(int j=;j<=i&&j<=m;j++){
if(j>=)dp[i][j]=dp[i-][j-];
if(i-j>=l){
tmp_dp[i][j]=max(tmp_dp[i-][j]+a[i],dp[i-l][j]+sum[i]-sum[i-l]);
dp[i][j]=max(dp[i][j],tmp_dp[i][j]);
}
}
}
printf("%d\n",dp[n][m]);
}
return ;
}

hdu 3905(dp)的更多相关文章

  1. hdu 3016 dp+线段树

    Man Down Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. HDU 5928 DP 凸包graham

    给出点集,和不大于L长的绳子,问能包裹住的最多点数. 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量.也 ...

  3. HDU 1069 dp最长递增子序列

    B - Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  4. HDU 1160 DP最长子序列

    G - FatMouse's Speed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  5. hdu 4826(dp + 记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4826 思路:dp[x][y][d]表示从方向到达点(x,y)所能得到的最大值,然后就是记忆化了. #i ...

  6. HDU 2861 (DP+打表)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2861 题目大意:n个位置,m个人,分成k段,统计分法.S(n)=∑nk=0CknFibonacci(k ...

  7. HDU 2838 (DP+树状数组维护带权排序)

    Reference: http://blog.csdn.net/me4546/article/details/6333225 题目链接: http://acm.hdu.edu.cn/showprobl ...

  8. hdu 5791 (DP) Two

    hdu 5791 Two Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  9. HDU 1069&&HDU 1087 (DP 最长序列之和)

    H - Super Jumping! Jumping! Jumping! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format: ...

随机推荐

  1. RHEL 7 基础配置

    一.修改运行级别 查看运行级别: [root@rhel7Oracle ~]# systemctl get-defaultgraphical.target [root@rhel7Oracle ~]# r ...

  2. 腾讯QQ的历史

    http://www.agenow.com/bbs/DispText.aspx?id=1385106 OICQ:   大家都习惯性的认为OICQ是马化腾先生自己动手研发的,可在腾讯内部的网友之间又传来 ...

  3. C#获取文件的md5

    上代码: //获取MD5 public static string GetMd5Hash(String input) { if (input == null) { return null; } MD5 ...

  4. 分别用C和C++来实现一个链栈

    下面通过分别用C和C++来实现一个链栈(链表实现),从中体会数据封装抽象的思想: C语言实现:  C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  5. atitit。win7 win8 win9 win10 win11 新特性总结与战略规划

    atitit.win7 win8 win9 win10  win11 新特性总结与战略规划 1. win7 1 1.1. 发布时间 2009年10月22日 1 1.2. 稳定性大幅提升,很少蓝屏死机 ...

  6. iOS_5_汤姆猫

    终于效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...

  7. CentOS下的强大的绘图工具 pinta

    [root@ok ~]# yum search pinta Loaded plugins: fastestmirror, refresh-packagekit, security Loading mi ...

  8. css 优先级的bug

    对于前端而言,了解css样式的优先级,对开发或处理bug有着事半功倍的效果,今天在做项目的时候,突然碰到一个优先级的小问题,刚开始不知道所因,后来才发现这个问题是由优先级造成的.先描述下问题,鼠标悬停 ...

  9. Linux动态库开发

    http://blog.csdn.net/qq_33850438/article/details/52014399 ### 导出符号------------------------------ 默认所 ...

  10. Bootstrap学习笔记(8)--响应式导航栏

    说明: 1. 响应式导航栏,就是右上角的三道杠,点一下下方出现隐藏的导航栏.如果屏幕够大就显示所有的导航选项,如果屏幕小比如手机,就显示部分,剩下的放到三道杠里隐藏. 2. 外面套一个大的div,其实 ...