题意:给出一列火车,可以由三个火车头拉,每个火车头最多拉m节车厢(这m节车厢需要保持连续),再给出n节车厢,每节车厢的人数,问最多能够载多少人到终点。

可以转化为三个长度相等的区间去覆盖n个数,使得这些数的和最大。

用dp[i][j]表示前i个数用j个区间覆盖所得到的最大值,状态转移则为覆盖第i个数,或者不覆盖第i个数。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int dp[][],sum[]; int main()
{
int ncase,n,i,j,ans,m;
scanf("%d",&ncase);
while(ncase--)
{
memset(dp,,sizeof(dp));
memset(sum,,sizeof(sum));
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d",&ans);
sum[i]=sum[i-]+ans;
}
scanf("%d",&m);
for(i=;i<=n;i++)
{
for(j=;j<=;j++)
{
if(i<=m*j) dp[i][j]=sum[i];//i小于可以覆盖得数字的总数,全部覆盖
else
dp[i][j]=max(dp[i-][j],dp[i-m][j-]+sum[i]-sum[i-m]);
}
}
printf("%d\n",dp[n][]);
}
return ;
}

参看的这一篇-http://www.cnblogs.com/tmeteorj/archive/2012/09/13/2683926.html

话说读题的时候不认识passenger coaches(车厢)这个单词,以为是站台(可以有人上有人下),然后还在想为什么都没有说相应的乘客要到哪个站台下车----= =不知道想到哪儿去了---5555

又-一次看题解---话说这样想不出来就看题解真的好么@_@

go--go--

最新文章

  1. iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
  2. popupwindow展示
  3. UEditor使用说明
  4. iOS &#39;The sandbox is not sync with the Podfile.lock&#39;问题解决
  5. 【Beta】第二次任务发布
  6. mysql_query()与mysql_real_query()
  7. html 表格head头部不动 body部分滚动,每格宽同内容增加
  8. 解析私有IP地址和公网IP地址
  9. 加载json文件没显示图片
  10. contentSize、contentInset和contentOffset的区分
  11. nodejs6-npm包管理工具
  12. Java的登陆验证问题
  13. Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞
  14. tyvj1297 小气的小B
  15. redis安装以及远程连接
  16. python:os.path
  17. Mapreduce在Yarn调用出错
  18. eclipse中打断点debug无效
  19. 四十一、Linux 线程——线程同步之条件变量
  20. Shell-17--break-exit-continue-shift

热门文章

  1. HDU4836 The Query on the Tree(树状数组&amp;&amp;LCA)
  2. Java package详解
  3. Windows命令查看文件MD5
  4. servlet 项目
  5. HBase保存的各个字段意义解释
  6. Good Bye 2015 A. New Year and Days 签到
  7. android真机自动化测试
  8. Eclipse下Python的MySQLdb的安装以及相关问题
  9. http://linuxme.blog.51cto.com/1850814/372960
  10. Java-马士兵设计模式学习笔记-观察者模式-读取properties文件改成单例模式