题目背景

白露横江,水光接天,纵一苇之所如,凌万顷之茫然。——苏轼

真程海洋近来需要进购大批赛斯石,你或许会问,什么是赛斯石?

首先我们来了解一下赛斯,赛斯是一个重量单位,我们用sisi作为其单位。比如11赛斯就是1si1si。

而赛斯石有这样一个性质,它本来是一赛斯一赛斯单独存在的,但是用自然枪将其精化之后,它就会与其它经过精化的赛斯石进行合并,合并到合适的重量之后,便将其钝化,使其不再合并其它赛斯石,如果合错了,也可以用金刚刀将其切开(神奇的是你只能切成整数赛斯重量)。赛斯石的重量只能是整数赛斯重量,而不同赛斯重量的赛斯石的价格也是不一样的。

题目描述

现需上市NeedNeed赛斯重量的赛斯石,卖家想算出这些赛斯石经过某种合并方式来获得的最大收益。然而目前有一个问题,市场在真程大殿附近(真程海洋中心位置),卖家需要租船送赛斯石过去(即不考虑卖家自己租船过去的费用),目前有十种船可以租,载重量从1si1si到10si10si,每艘船的租价也是有所不同的,如下表所示:

由于真程大殿附近有强烈的赛斯力,导致无法对赛斯石进行任何操作,商家将赛斯石运过来之后就只能按照之前合并好的卖。假设卖家不返回,且这些赛斯石全部能卖出去。现在卖家他要计算总盈利(设总盈利=赛斯石的总收益-租船所需总费用),请你设计一个程序,算出一种最佳方案,以获得最大总盈利。

输入输出格式

输入格式:

输入一共有两行

第一行有一个数据NeedNeed(赛斯石的总量,单位:sisi)

第二行有十个数据a_{1}\ ...\ a_{10}a1​ ... a10​(分别为1si1si到10si10si的赛斯石市场价格,单位:元)

输出格式:

输出仅一行,包含一个整数,表示最大总盈利。

输入输出样例

输入样例#1: 复制

11
1 6 11 17 23 27 33 35 38 43
输出样例#1: 复制

32
输入样例#2: 复制

7
1 5 14 18 20 28 31 34 39 42
输出样例#2: 复制

21

说明

样例一说明:

将1111个单位赛斯石合并为一个4si4si的赛斯石和一个7si7si的赛斯石并且租两个载重分别为4si4si和7si7si的船,这样做为最佳方案,那么最大总盈利就是3232元。

注意:

对于所有输入数据,均在区间(0, 100000)(0,100000)中,并且为整数;

保证卖家最大总盈利为正;

同一行中,每两个数据之间有一个空格。

赛后强化版于20172017年1111月99日88点1010分已强化完毕。


一开始以为是多重背包,实际上不是

因为装进船之后也是可以切割的,就是说可以几块小的拼起来一起放入船中

这样可以先强制使用第i艘船,然后枚举一下。

 #include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#define MAXN 100005
using namespace std;
int s[]={,,,,,,,,,,},v[];
long long p[];
long long f[MAXN];
int n;
int main()
{
scanf("%d",&n);
for(int i=;i<=;i++){
scanf("%d",&v[i]);
}
for(int i=;i<=;i++){
p[i]=v[i];
for(int j=;j<i;j++){
p[i]=max(p[i],p[i-j]+p[j]);
}
}
for(int i=;i<=;i++){
p[i]-=s[i];
}
for(int i=;i<=n;i++){
for(int j=;j<=min(,i);j++){
f[i]=max(f[i],f[i-j]+p[j]);
}
}
printf("%lld\n",f[n]);
return ;
}

最新文章

  1. 【WPF】日常笔记
  2. 从微软下载安装Windows10
  3. PlayMaker的应用
  4. css 内联元素
  5. librtmp推流使用aac编码音频的html5和flash播放问题
  6. EasyUI 关于IE使用window组件上传文件
  7. HDOJ 2017 字符串统计
  8. Ubuntu使用Xming和Putty
  9. Binary Tree Zigzag Level Order Traversal (LeetCode) 层序遍历二叉树
  10. 来选择一款适合你网站的CMS建站程序吧
  11. iOS 视图控制器生命周期
  12. python进阶(8):常用模块2+异常处理
  13. 《java入门第一季》之HashSet小案例:获取10个1至20的随机数,要求随机数不能重复
  14. 【译文】CSS技术:如何正确的塑造button样式!
  15. ERROR: Got error reading packet from server: A slave with the same server_uuid/server_id as this slave has connected to the master
  16. 从构建分布式秒杀系统聊聊WebSocket推送通知
  17. 基于Zxing的二维码的二维码扫描之横屏扫描
  18. 【8.13校内测试】【DP】【按除数分类】【二分】
  19. hdoj1001--Sum Problem
  20. java基础面试题:try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

热门文章

  1. Python 线程复习
  2. JAVA的循环控制与循环嵌套
  3. 服务器磁盘阵列数据恢复,raid5两块硬盘掉线数据恢复方法
  4. 微信qq,新浪等第三方授权登录的理解
  5. LeetCode &amp; Q35-Search Insert Position-Easy
  6. Vue.js和jQuery混合使用的一点注意事项
  7. Python内置函数(47)——vars
  8. JAVA工程师面试题【来自并发编程网】
  9. 怎样使用下载的bootstrap模板?
  10. 使用 slf4j抽象日志层 和 其他日志实现对接