魔法禁书目录2:回家(codevs 3024)
大妈打完三战回家,我知道他是怎么回来的,欧洲到日本有L个站点他决定乘坐恰好n次飞机(不是学院都市的超音速飞机)和m次火车来从第一个站点到达最后一个站点。但是有一点很重要的就是跟御坂美琴那样的壕不同大妈很穷,所以他决定要尽量花费最少的费用,当然如果能赚到钱那就更好了。由于当麻交友甚广,他们在某些站点可以见到一些故友,可以得到资助,而在有些站点不但不会赚钱,还会因为要住宿,买车票,旅游等而花费一定的费用。如果他乘坐火车,那么就会受到所经过的站点(包括终点不包括起点)的影响,花费一定费用或赚到一定的钱,而他做飞机的话就不会受到站点的影响,他已经知道了每个站点的情况,为防止钱花的过多被index咬头他决定找你来帮他找到最省钱(赚钱)的方案
输入文件back.in第一行包含三个整数,为他们决定坐火车的次数m,他们决定坐飞机的次数n,站点数L。第二行为L个整数,每个数都在-200到200之间,表示每个站点的情况,正数表示能赚到钱,负数表示会花费钱。
输出文件back.out包含一个整数,表示他们最多能赚到多少钱(如果入不敷出就输出负数来表示他们花了多少钱)。
6 6 14
12 32 43 -1 32 -9 -10 32 -43 -21 -32 12 -31 -3
150
【样例解释】
一种最赚钱的方法为:1-〉2(火车),2-〉3(火车),3-〉4(火车),4-〉5(火车),5-〉7(飞机),7-〉8(火车),8-〉9(飞机),9-〉10(飞机),10-〉11(飞机),11-〉12(火车),12-〉13(飞机),13-〉14(飞机)
【数据范围】
n+m<L
对于60%的数据,1<=n,m<=50,1<=L<=200。
对于100%的数据,1<=n,m<=200,1<=L<=500。
/*
DP方程式很好想的,设f[i][j][k]为用了i次火车,j次飞机,走到k点的最大收益。
转移:f[i][j][k]=max(f[i-1][j][pos]+s[k]-s[pos],f[i][j-1][pos])
但是这样时间和空间都会超,空间数组滚一下,至于时间,我们发现每次更新f[i][j][…]的都是f[i-1][j][…],
所以可以考虑维护一个最大值。
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define N 210
#define M 60
using namespace std;
int a[N],s[N],f[][M][N],n,c1,c2,mx1[][M][N],mx2[][M][N];
int main(){
memset(f,-/,sizeof(f));
memset(mx1,-/,sizeof(mx1));
memset(mx2,-/,sizeof(mx2));
scanf("%d%d%d",&c1,&c2,&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
s[i]=s[i-]+a[i];
}
f[][][]=mx1[][][]=mx2[][][]=;
for(int i=;i<=c1;i++){
for(int j=;j<=c2;j++){
for(int k=;k<=n;k++){
if(i)f[i&][j][k]=max(f[i&][j][k],mx1[(i+)&][j][k-]+s[k]);
if(j)f[i&][j][k]=max(f[i&][j][k],mx2[i&][j-][k-]);
}
for(int k=;k<=n;k++){
mx1[i&][j][k]=max(mx1[i&][j][k-],f[i&][j][k]-s[k]);
mx2[i&][j][k]=max(mx2[i&][j][k-],f[i&][j][k]);
}
}
for(int j=;j<=c2;j++)
for(int k=;k<=n;k++){
f[i+&][j][k]=-;
mx1[i+&][j][k]=-;
mx2[i+&][j][k]=-;
}
}
printf("%d\n",f[c1&][c2][n]);
return ;
}
魔法禁书目录2:回家(codevs 3024)的更多相关文章
- [Nowcoder212D]禁书目录_概率期望
		
禁书目录 题目大意:清教需要定期给Index清除记忆,在此之前需要把当中的十万三千本禁书取出来......不幸的是,禁书一旦离开了Index就非常脆弱,具体来说,每一本禁书都有一个魔力值 ai ,其记 ...
 - 牛客 Wannafly 挑战赛26D 禁书目录    排列组合 概率期望
		
原文链接https://www.cnblogs.com/zhouzhendong/p/9781060.html 题目传送门 - NowCoder Wannafly 26D 题意 放一放这一题原先的题面 ...
 - T1079 回家   codevs
		
http://codevs.cn/problem/1079/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver~死坑 题目描述 Description 现在是晚 ...
 - day-4
		
/* 早上黑板上的倒计时变成了120小时 嗯 很快就要结束了 上午考试 据老师说很简单 老师 :"我就说说~"..... 下午改题 T3好辣脑子 感觉智商不够了 T2dp写丑了 然 ...
 - Front Page
		
General Team FST stay night from ShanDong University 19 - 20 CCPC QinHuangDao Gold (4 th) IUPC YinCh ...
 - 【JAVA 文件概述】
		
一.概述 使用此类的原因: 该类将文件或者文件夹封装成对象.方便对文件与文件夹的属性信息进行操作.File对象作为参数传递给流的构造函数.要求:使用File类的常用方法. windows平台下,目录分 ...
 - Qt Creator提示"Qt没有被正确安装,请运行make install"的解决办法
		
笔者最近使用Qt在开发一些小程序,觉得这个框架设计确实很好,使用了信号和槽解决了组件之间的通讯问题,可以说是基于C++语言上一个非常大的创新,大大提高了开发人员的编码效率,也使整个C++语言更加抽象. ...
 - Atlas安装及配置
		
==============linux下快捷键==================ctrl+insert 复制shift +insert 粘贴 输入文件名的前三个字母,按tab键自动补全文件名 在vi ...
 - Linux简单的常用命令——纯手打(慢慢积累)
		
==============linux下快捷键==================ctrl+insert 复制shift +insert 粘贴 输入文件名的前三个字母,按tab键自动补全文件名 在vi ...
 
随机推荐
- 游戏BUFF设计
			
游戏中的BUFF/DEBUFF我们见过很多,我见到的玩得比较泛滥的就属WAR3.魔兽世界.九阴真经.仿DOTA类的如LOL. 总体上来说,BUFF/DEBUFF都属于“临时的技能效果”,因此它们可以沿 ...
 - 使用IzPack打包JAVA Web应用程序
			
使用IzPack打包JAVA Web应用程序步骤如下: 这里使用IzPack-4.3.5 + launch4j-3.1.0-beta1-win32.zip(绿色版)对Web应用程序打包,打包后即可对我 ...
 - 分布式系统一致性算法 raft学习
			
在学习MongoDB的过程中,有博客中写道其搭建复制集时使用了raft算法,经过简单地的搜索资料后,发现了一个特别好的网站资料.这个网站用动画的形式,非常清楚和详尽的解释了整个raft算法的精要和过程 ...
 - HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5023 解题报告:一面墙长度为n,有N个单元,每个单元编号从1到n,墙的初始的颜色是2,一共有30种颜色 ...
 - xcode免证书开发
			
工程和target的code sign 选择 ios developer 工程的team选择为none就ok 推送测试 或者 正式发布的时候要改回来, 有一个严重的缺陷, 就是打包出来的ipa程序有时 ...
 - [codevs2181]田忌赛马
			
[codevs2181]田忌赛马 试题描述 中国古代的历史故事"田忌赛马"是为大家所熟知的.话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金 ...
 - word20161129
			
1. nested 英[nestɪd]美[nestɪd]adj. 嵌套的;v. 筑巢( nest的过去式和过去分词 );[例句]In the makeGrades method I use a cod ...
 - Sqli-LABS通关笔录-10
			
好像咋整都没辙.实在是关卡越高越不好整. 弄报错.咋整咋不报错. and sleep(10);鸭蛋的也不好搞.实在没辙.就看源码了. 由代码得出payload: THE END
 - linux下的shell运算(加、减、乘、除)
			
linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...
 - Routing in ASP.NET Web API和配置文件的设定读取
			
Routing Tables In ASP.NET Web API, a controller is a class that handles HTTP requests. The public me ...