第2课 桐桐的运输方案《聪明人的游戏 信息学探秘.提高篇》
/*
第2课 桐桐的运输方案(transp)-2020-02-232019 CSP-J/S第一轮各省分数线统计与分析(含浙江省)
http://www.jzb.com/bbs/thread-7553499-1-1.htmlCSP-J/S2019第二轮入门级一等各省评级分数线
http://www.zizzs.com/c/201912/41117.htmlCSP-J/S2019第二轮提高级一等各省评级分数线
http://www.zizzs.com/c/201912/41116.html
*/
#include <bits/stdc++.h>
using namespace std;int n;
bool used[30],best[30];
double ans,x,w[30],v[30],f[30];//search(1,0,0);
void search(int k,double weight,double m)
{//剪枝1 超重 if( weight > x ) return;//剪枝2 if( m>ans ){ans=m;//更新哪个物品选择了 for(int i=1;i<=n;++i){best[i]=used[i];}}//碰到南墙就回头 if( k>n ) return;//剪枝3//2.要求所运送货物的总价值最大。//在第k步时,如果把后面剩下的所有物品都选择所得到的总价值都不比当前保存的最大价值大,//则不再搜索。if( m+f[k]<ans) return;
/*
20
n=6
weight[i]
6 2 8 15 3 2
v[i]
5 8 10 2 1 1
f[i]
27 22 14 4 2 1
*/ //选择物品K used[k]=true;search(k+1,weight+w[k],m+v[k]);//不选择物品K used[k]=false;search(k+1,weight,m);
}
int main( void )
{//第1行是一个实数,表示货车的最大载货量x (1<x≤100)。//第2行是一个正整数,表示待运送的货物数n (1<n≤20)。cin>>x>>n;//后面n行每行两个用空格隔开的实数,//分别表示第1至第n件货物的质量W(weight)和价值V(value)。for(int i=1;i<=n;++i){cin>>w[i]>>v[i];}//o(n) 后缀数组 for(int i=n;i>=1;--i){f[i]=f[i+1]+v[i];}ans=0;search(1,0,0);//第1行为被运送货物的总价值(只输出整数部分);cout<<(int)floor(ans)<<endl;//第2行为按编号大小顺序输出所有被运送货物的编号//(当一件都不能运送时,不输出)。for(int i=1;i<=n;++i){if( best[i] ){cout<<i<<" ";}}cout<<endl;return 0;
}
/*
20
4
3.5 4
4 5
5 6.8
6.9 7作业:
1.小学奥数_7647余数相同问题
http://noi.openjudge.cn/math/7647/2、4.7算法之搜索
http://noi.openjudge.cn/ch0407/3、2.5基本算法之搜索
http://noi.openjudge.cn/ch0205/
*/
第2课 桐桐的运输方案《聪明人的游戏 信息学探秘.提高篇》相关推荐
- 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》(优化空间)
[NOIP2006 普及组] 开心的金明 - 洛谷 """ 第5课 开心的金明<聪明人的游戏:信息学探秘.提高篇>(优化空间) https://www.luo ...
- 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》
[问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过n元 ...
- 第1课贝贝的交通指挥系统(《聪明人的游戏:信息学探秘.提高篇-2017-06-C++版》)
[问题描述] 贝贝所居住的城市有很多个交通路口,其中有26个交通路口在上下班高峰期总是塞车,严重影响市民的出行.于是交通管理部门研制了一批机器人交通警察,用它们来专门指挥这26个交通路口,但需 ...
- 第七章 递推与递归 第3课 攀天梯(ladder) --《聪明人的游戏:信息学探秘.提高篇》
[问题描述] 北武当山主峰四周几乎都是陡壁悬崖,只有一条人造"天梯"可攀,天梯由n级就山凿筑的石阶组成,欢欢打算通过天梯攀上北武当山主峰.攀天梯时,他有时一步一级石阶,有时 ...
- 第6课 桐桐的砝码(tfama)
[问题描述] 桐桐有2g.3g.5g.7g.10g.15g的砝码各有一枚.她想知道用这些砝码能称出多少种不同的质量. [输出格式] 只有一个数,表示能称出的不同质量的个数. C++代码 ...
- 桐桐的计算(第三章第1课)
这个周末数学老师布罟了一道有趣的题目,意思是:九头鸟(传说中的一种怿鸟,它有九个头,两只脚)鸡和兔子关在一个笼子里.数数它们的头正好是100 个,数数它们的脚也正好是100只.老师让桐桐编程计算其中九 ...
- 桐桐去购物(第三章第1课)
桐桐周末陪妈妈到市场购物.她和妈妈来到一个买鸡的摊位,发现鸡的价格有三种:公鸡每只5元钱,母鸡每只3元钱,小鸡3只1元钱.妈妈就给桐桐出了一道计算题:如果用n元钱买m只鸡,问公鸡.母鸡和小鸡可以各买多 ...
- 【递归】桐桐的递归函数
桐桐的递归函数 题目大意: 有一个函数,让你照着打 原题: 题目描述 桐桐经常找一些很有趣的数学书来阅读以增长自己的数学知识.一天,他偶然发现一个递归函数w(a,b,c)有以下性质: 如果a≤0或b≤ ...
- vijos1325 桐桐的糖果计划
Description 桐桐是一个快乐的小朋友,他生活中有许多许多好玩的事,让我们一起来看看吧-- 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致 ...
最新文章
- Python3中__init__.py文件介绍
- Android Studio内存优化
- linux编译树莓派内核,编译树莓派 4B Linux 5.9 内核
- aps是什么意思_全画幅大还是中画幅大? 为什么说底大一级压死人
- 【Linux】一步一步学Linux——host命令(162)
- AFNetworking 3.0源码阅读 - AFURLResponseSerialization
- 暑期学校 | 东南大学2021年国际暑期学校项目:从感知理解到智能认知 (知识图谱及应用课程)...
- ASP.NET应用程序性能测试
- 数据可视化系列(四):文字图例尽眉目
- Launch custom android application from android browser
- Linux系统性能相关知识学习
- 虚拟机技术抗黑产!几维安全KiwiVM虚拟机实现全平台全架构防护方案!
- 第五篇:白话tornado源码之褪去模板的外衣
- MySQL之数据库编程(了解语言结构)
- mysql 如何避免间隙锁_Mysql Innodb 间隙锁浅析
- java 8 stream入门_跟上 Java 8 : Stream API 快速入门
- 2022北京工业互联网安全大赛初赛-wakeup
- 软件开发中什么是CI/CD
- Vue中数字(金额)大小写实时转换
- android gps 经纬度转换,Android GPS 取经纬度
热门文章
- Redis 数据结构的实现
- 轻触开源(一)-Java泛型Type类型的应用和实践
- 【面试笔记系列】排序算法汇总
- 转 html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- 【转】android TV CTS 4.0.3_r1测试
- 微博营销不可不知的微博六种人
- How to get Intellisense for Web.config and App.config in Visual Studio .NET?(转载)
- .Net Remoting中Remote Server的Port占用/释放问题
- 数据新动能:帆软第四届智数大会圆满落幕
- p2psearcher2013源码实现原理