POJ 1976 A Mini Locomotive【DP】
2024-10-19 01:20:21
题意:给出一列火车,可以由三个火车头拉,每个火车头最多拉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--
最新文章
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- popupwindow展示
- UEditor使用说明
- iOS &#39;The sandbox is not sync with the Podfile.lock&#39;问题解决
- 【Beta】第二次任务发布
- mysql_query()与mysql_real_query()
- html 表格head头部不动 body部分滚动,每格宽同内容增加
- 解析私有IP地址和公网IP地址
- 加载json文件没显示图片
- contentSize、contentInset和contentOffset的区分
- nodejs6-npm包管理工具
- Java的登陆验证问题
- Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞
- tyvj1297 小气的小B
- redis安装以及远程连接
- python:os.path
- Mapreduce在Yarn调用出错
- eclipse中打断点debug无效
- 四十一、Linux 线程——线程同步之条件变量
- Shell-17--break-exit-continue-shift
热门文章
- HDU4836 The Query on the Tree(树状数组&;&;LCA)
- Java package详解
- Windows命令查看文件MD5
- servlet 项目
- HBase保存的各个字段意义解释
- Good Bye 2015 A. New Year and Days 签到
- android真机自动化测试
- Eclipse下Python的MySQLdb的安装以及相关问题
- http://linuxme.blog.51cto.com/1850814/372960
- Java-马士兵设计模式学习笔记-观察者模式-读取properties文件改成单例模式