noip推荐系列:汽艇[贪心]
【问题背景】
一天sxc,zsx,wl到gly坐汽艇,本来和其他的人约好了一起去,结果被放了鸽子,3人便只有一人负担x元去坐汽艇(很贵哦)。坐了才发现如果汽艇上人多了位置就不宽敞,就不好玩了。而3个人貌似是最好玩的,但究竟是不是呢?
【问题描述】 假设有n个人要去坐1个汽艇,每个人单独坐汽艇的快乐程度是Ci,每多一个人,他的快乐程度会减去Di,请求出使快乐程度之和达到最大的方案。(假设汽艇的容量足够大)。
【文件输入】
输入文件共有3行: 第1行是一个整数n; 第2行有n个整数,依次表示每个人单独坐汽艇的快乐程度Ci(1<=Ci<=10000); 第3行有n个整数,依次表示每多1人,每个人快乐程度的下降值Di(1<=Di<=10)。
【文件输出】
应输出两行: 第1行一个整数,是最大的快乐程度之和; 第2行一个整数,是最大的快乐程度之和所对应的汽艇上的人数(若有多种方案,则输出人数最多的)。
【样例输入】
6
10 10 10 10 10 9
2 2 2 2 2 3
【样例输出】
18
3
【样例说明】 前3个人去坐汽艇可使快乐程度之和达到最大,每个人的快乐程度均为10-2*2=6,总和是18。
【数据范围】 对于30%的数据,n<=20; 对于100%的数据,n<=1000。
这样的题很容易可以判断出是贪心,DP不行,因为这题要考虑后效性;(而且个人感觉暴力都不好写)
但是怎么贪心?
这题我第一测的时候全WA= =,或许是因为写贪心已经形成一种定式了吧,总想着先排序,然后再乱搞什么的。
所以这题也算是给我一个教训吧
说说这题的思路吧
首先,我们不可以一下子判断出来选谁最优对吧
因为快乐值大的,下降值可有可能很大。同理。
所以,我们每选一次就判断一次谁最优;
其实很简单...(我比较傻逼没有想到)
不过就是模拟+贪心思想;
我们枚举坐汽艇的人数i,算出在当前人数i下,每一个人剩下的快乐程度,排序,算出i人最大的快乐程度总和;
再更新出答案即可;
附上代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std; const int maxn=1001;
int n,m;
struct node{
int c,d;
}a[maxn];
int f[maxn];
int ans,tot=1; bool cmp(int x,int y){return x>y?1:0;}
int main(){
//freopen("data.txt","r",stdin);
freopen("launch.in","r",stdin);
freopen("launch.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i].c),ans=max(ans,a[i].c);
for(int i=1;i<=n;i++) scanf("%d",&a[i].d);
for(int i=1;i<=n;i++){
int temp=0;
for(int j=1;j<=n;j++) f[j]=a[j].c-(i-1)*a[j].d;
sort(f+1,f+n+1,cmp);
for(int j=1;j<=i;j++){
temp+=f[j];
}
if(ans<=temp){
ans=temp;
tot=i;
}
}
cout<<ans<<"\n"<<tot;
return 0;
}
noip推荐系列:汽艇[贪心]的更多相关文章
- noip推荐系列:遥控车[字符串+高精+二分答案]
[问题描述] 平平带着韵韵来到了游乐园,看到了n辆漂亮的遥控车,每辆车上都有一个唯一的名字name[i].韵韵早就迫不及待地想玩名字是s的遥控车.可是韵韵毕竟还小,她想象的名字可能是一辆车名字的前缀( ...
- noip知识点总结之--贪心
一.什么是贪心 贪心算法嘛... 就是在对某个问题求解时,总是做出在当前看来是最好的选择 In other wors,并不是从整体最优上加以考虑,而是在获得某种意义上的局部最优解 二.贪心算法的适用前 ...
- Python开发包推荐系列之xml、html解析器PyQuery
使用python,喜欢她的简洁是一方面,另外就是它有着丰富的开发包 好用又方便 接下来会给大家推荐一系列很赞的开发包. 在解析html.xml过程中,我们有不少的包可以用.比如bs.lxml.xmlt ...
- 书籍推荐系列之一 -- 《凤凰项目:一个IT运维的传奇故事》
博客已经完全更新了名字,新的名字,新的开始,想让自走向新的道路是很难的,走出舒适圈说了好久,也是时候开始行动了,今天就从写博客开始. 今天给大家推荐一本书,<凤凰项目:一个IT运维的传奇故事&g ...
- [ 10.05 ]CF每日一题系列—— 962B贪心和思维?
Description: 非 * 号的地方可以放A或B,不能AA或BB,一共有a个A,b个B,问你最多放几个 Solution: 1.模拟一下,找连续空位长度,如果长度为奇数,则我可以有一个位置放任意 ...
- [ 10.03 ]CF每日一题系列—— 534B贪心
Descripe: 贪心,贪在哪里呢…… 给你初始速度,结尾速度,行驶秒数,每秒速度可变化的范围,问你行驶秒数内最远可以行驶多少距离 Solution: 贪心,我是否加速,就是看剩下的时间能不能减到原 ...
- 好文推荐系列-------(5)js模块化编程
本文主要来源于阮一峰的<Javascript模块化编程>系列文章整合,原文地址:http://www.ruanyifeng.com/blog/2012/10/javascript_modu ...
- 好文推荐系列--------(1)bower---管理你的客户端依赖
好文原文地址:http://segmentfault.com/a/1190000000349555 编者注:我们发现了比较有趣的系列文章<30天学习30种新技术>,准备翻译,一天一篇更新, ...
- 2018.09.08 NOIP模拟eat(贪心)
签到水题啊... 这题完全跟图论没有关系. 显然如果确定了哪些点会被选之后顺序已经不重要了.于是我们给点按权值排序贪心从大向小选. 我们要求的显然就是∑i(a[i]−(n−i))" role ...
随机推荐
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...
- Floodlight Controller 路线原则
SDN的出现能够使得各种复杂的路由协议从原本的Device OS中剥离出来,放在SDN Controller中.Controller用一种简单的协议来和全部的Router进行通信.就能够获得 ...
- java_Eclipse中SVN的安装步骤(两种)和使用方法
若是只要site地址: http://subclipse.tigris.org/update_1.6.x, 下边可以忽略 一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方 ...
- 前端学习笔记(zepto或jquery)——对li标签的相关操作(一)
对li标签的相关操作——点击li标签进行样式切换的两种方式 Demo演示: 1 2 3 4 // 详解: 第一种方式(以ul为基础): $("ul").bind("cli ...
- ThinkPHP神秘应用架构扩展
ThinkPHP应用模式提供了机会,改变核心框架.它可以让你的应用程序,以适应环境和其他许多不同的需求. 每一个应用模式都有自己的模式定义文件,相对与ThinkPHP3.1版本号.ThinkPHP3. ...
- .NET 各种问题汇总
1.i++ 与++i的区别 using System; class TestApp { public static void Main() { int i = 8; int count = ++i;/ ...
- mysqldump报错
在使用mysqldump命令备份整个数据库的时候,报错例如以下: mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE 'userlog'': Got err ...
- linux open
一直记住不打开文件时候的mode,今天发现原来可以直接用0644这样的八进制数字代替,好开森 #include <stdio.h> #include <sys/types.h> ...
- JS实现全选,用于界面批量操作向后台传值时使用
function seltAll(){ var chckBoxSign = document.getElementById("ckb"); //ckb 全选/反选的选择框id va ...
- EA强大的绘图工具---设计数据库表格
关于EA这个优秀的软件是从师哥哪里听来的,自己瞎点了点,感觉也没什么.近期和和智福加上一个师哥合作敲机房收费系统时,想到之前听人说EA非常强大,便随便找了找关于EA使用的帮助手冊.果然惊喜-- 如题, ...