装载问题(load)
装载问题(load)
问题描述:
有一批共n 个集装箱要装上艘载重量为c 的轮船,其中集装箱i 的重量为wi。找出一种最
优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装
上轮船。
输入格式:
第一行有2 个正整数n(1<=n<=40)和c。n 是集装箱数,c 是轮船的载重量。接下来的1 个有
n 个正整数,表示集装箱重量。
输出格式:
输出最大装载量
输入样例:
5 10
7 2 6 5 4
输出样例:
- 10
****
- #include<iostream>
- #include<cstdlib>
- using namespace std;
- int n,c,a[],i,m=;
- bool f[];
- void fa(int s,int t)
- {
- int i;
- if (s==c){cout<<s<<endl;exit();} //如果和要求的载重量相同那么一定是最优解
- if (s>c) {return;} //如果已放的重量超载那就回溯剪掉这次的重新加
- if (s>m)m=s; //m表示最大重量如果新方法可使重量大于原先的重量那么更新最大重量
- //if (t>n){cout<<m<<endl;exit(0);}
- for (i=;i<=n;i++) //循环每一个物体
- if (f[i]) //如果这个物体没有被放
- {
- f[i]=false; //那么放这个物体并且把这个物体标记为已放
- s+=a[i]; //重量更新
- fa(s,t+); //再次判断这个物体是否还可以再加 变的更大
- s-=a[i]; //如果不能剪掉这一次然后重新加,并且把这个物体放回去标记为待放
- f[i]=true;
- }
- }
- int main()
- {
- cin>>n>>c;
- for (i=;i<=n;++i)cin>>a[i];
- for (i=;i<=n;++i)f[i]=true; //表示物体待放
- fa(,); //s表示已放的重量
- cout<<m<<endl;
- return ;
- }
先把所有物体设为待放,然后一个一个使满足要求就继续并且更新最大值,不满足要求返回重新加。
***一开始的时候我是循环从i个数加到第j个数字,若加上去的数离c更近就保存这个数,如果比c大就变回加之前的数最后把保存下来的最大值输出。样例是过了。可能是面对其他的数据会有遗漏的可能性吧。
装载问题(load)的更多相关文章
- 使用 Hive装载数据的几种方式
装载数据 1.以LOAD的方式装载数据 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION( ...
- Java编译及装载
Java类加载机制 JVM将类加载过程划分为三个步骤:装载.链接和初始化. 装载(Load):装载过程负责找到二进制字节码并加载至JVM中,JVM通过类的全限定名(com.bluedavy. Hell ...
- PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)
100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...
- Java类加载器总结
1.类的加载过程 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示: 1) 装载:查找并加载类的二进制数据: 2)链 ...
- Linux Dynamic Shared Library && LD Linker
目录 . 动态链接的意义 . 地址无关代码: PIC . 延迟版定(PLT Procedure Linkage Table) . 动态链接相关结构 . 动态链接的步骤和实现 . Linux动态链接器实 ...
- VQ结合SVM分类方法
今天整理资料时,发现了在学校时做的这个实验,当时整个过程过重偏向依赖分类器方面,而又很难对分类器性能进行一定程度的改良,所以最后没有选用这个方案,估计以后也不会接触这类机器学习的东西了,希望它对刚入门 ...
- Lucene 4.X 倒排索引原理与实现: (1) 词典的设计
词典的格式设计 词典中所保存的信息主要是三部分: Term字符串 Term的统计信息,比如文档频率(Document Frequency) 倒排表的位置信息 其中Term字符串如何保存是一个很大的问题 ...
- PayPal 高级工程总监:读完这 100 篇文献,就能成大数据高手
原文地址 开源(Open Source)对大数据影响,有二:一方面,在大数据技术变革之路上,开源在众人之力和众人之智推动下,摧枯拉朽,吐故纳新,扮演着非常重要的推动作用:另一方面,开源也给大数据技术构 ...
- BI (商业智能)
BI (商业智能) 编辑 商业智能(BI,Business Intelligence). BI(Business Intelligence)即商务智能,它是一套完整的解决方案,用来将企业中现有的数据进 ...
随机推荐
- Shell学习笔记之shell脚本和python脚本实现批量ping IP测试
0x00 将IP列表放到txt文件内 先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.1 ...
- HCNP学习笔记之子网掩码的计算和划分详细
0x00 子网掩码的计算 TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的.网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会 ...
- Python3 爬取微信好友基本信息,并进行数据清洗
Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...
- tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南(含nginx/https支持)
之所以sockjs会存在,说得不好听点,就是因为微软是个流氓,现在使用windows 7的系统仍然有近半,而windows 7默认自带的是ie 8,有些会自动更新到ie 9,但是大部分非IT用户其实都 ...
- CocoaPods的安装及使用
CocoaPods安装使用及配置私有库 http://www.exiatian.com/cocoapods%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E5%8F%8A%E ...
- P4113 [HEOI2012]采花 (莫队TLE)
思路 update 11.2 树状数组AC 本题莫队过不去,会TLE ----------------------- 但也是个不错的莫队练手题 ------------------------ 毕竟C ...
- jQuery ajax 添加头部参数跨域
1.添加HTTP文件头 $.ajax({ url: "http://www.baidu.com", //contentType: "text/html; charset= ...
- JavaScript 各种验证收集
filter或者forEach函数,可能是因为你的浏览器还不够新,暂时不支持新标准的函数,你可以使用如下方式自己定义: if (!Array.prototype.forEach) { Array.pr ...
- Source not found :Edit Source Lookup Path 解决方案
作者原创,转载请注明转载地址 在eclipse中用debug调试的时候,出现了以下问题,很是尴尬,经常碰到,所以有必要进行总结一下: 对该问题有两种解决方案, 一种比较文明:解决方法可参考如下网址: ...
- Javascript库的产生和解读
javascript库的产生,增强了浏览器或javascript语言的某些机制的功能, 让业务开发人员,更专注业务逻辑,而不是机制逻辑. 比如, 0.兼容性 同样的功能函数,不同的浏览器所暴露的a ...