【20181027T2】易水决【贪心+堆】
【错解】
全肝T1了没怎么想
【正解】
一眼贪心
先考虑\(b_i=0\)怎么做
可以模拟一个正常人的思维
开一个堆,记录每个任务需要的时间(包括等待),每次从中取出一个任务,表示现在这个东西空闲了,然后放入下一个任务
这样就可以处理出所有任务的时间,记为A
同样独立算出第二步的时间,记为B
那我们要求的就是将A、B重新排列使\(max{A_i+B_i}\)最小
最大最小可以二分
感性理解就会发现,A升序,B降序使最小的
然后可以AC此题
#include <iostream>
#include <cstdio>
#include <utility>
#include <algorithm>
#include <queue>
#define MAXN 1000005
using namespace std;
typedef long long ll;
inline int read()
{
	int ans=0,f=1;
	char c=getchar();
	while (!isdigit(c))
	{
		if (c=='-') f=-1;
		c=getchar();
	}
	while (isdigit(c))
		ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
	return f*ans;
}
typedef pair<ll,int> pi;//时间戳,等待时间
priority_queue<pi,vector<pi>,greater<pi> > q;
int w[MAXN];
ll a[MAXN],b[MAXN];
void init(int n)
{
	for (int i=1;i<=n;i++)
	{
		w[i]=read();
		q.push(make_pair(w[i],w[i]));
	}
}
void update(int l,ll a[])
{
	for (int i=1;i<=l;i++)
	{
		pi t=q.top();q.pop();
		a[i]=t.first;
		q.push(make_pair(t.first+t.second,t.second));
	}
	sort(a+1,a+l+1);
}
int main()
{
	int n,m,l;
	l=read(),n=read(),m=read();
	init(n);
	update(l,a);
	while (!q.empty()) q.pop();
	init(m);
	update(l,b);
	ll ans=0;
	for (int i=1;i<=l;i++)
		ans=max(ans,a[i]+b[l-i+1]);
	cout<<ans;
	return 0;
}
【20181027T2】易水决【贪心+堆】的更多相关文章
- 【贪心+堆】XMU 1584 小明的烦恼
		题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1584 题目大意: 给n(n<=100 000)个任务的耗时和截至时间,问最少不能 ... 
- BZOJ_2151_种树_贪心+堆+链表
		BZOJ_2151_种树_贪心+堆 Description A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门得到指令后,初步规划出n个种树的位置,顺时针编 ... 
- BZOJ_2006_[NOI2010]超级钢琴_贪心+堆+ST表
		BZOJ_2006_[NOI2010]超级钢琴_贪心+堆+ST表 Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的 音乐 ... 
- BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆
		BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是 ... 
- 【bzoj4425】[Nwerc2015]Assigning Workstations分配工作站  贪心+堆
		题目描述 佩内洛普是新建立的超级计算机的管理员中的一员. 她的工作是分配工作站给到这里来运行他们的计算研究任务的研究人员. 佩内洛普非常懒惰,不喜欢为到达的研究者们解锁机器. 她可以从在她的办公桌远程 ... 
- 【bzoj1029】[JSOI2007]建筑抢修  贪心+堆
		题目描述 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建 ... 
- 【bzoj2802】[Poi2012]Warehouse Store  贪心+堆
		题目描述 有一家专卖一种商品的店,考虑连续的n天.第i天上午会进货Ai件商品,中午的时候会有顾客需要购买Bi件商品,可以选择满足顾客的要求,或是无视掉他.如果要满足顾客的需求,就必须要有足够的库存.问 ... 
- BZOJ 1724: [Usaco2006 Nov]Fence Repair 切割木板 贪心 + 堆 + 反向思考
		Description Farmer John想修理牧场栅栏的某些小段.为此,他需要N(1<=N<=20,000)块特定长度的木板,第i块木板的长度为Li(1<=Li<=50, ... 
- BZOJ 1029 建筑抢修  贪心+堆
		又搞了一晚上OI,编了两道BZOJ和几道NOI题库,临走之前写两篇感想 noip越来越近了,韩大和clove爷已经开始停课虐我们了... 1029: [JSOI2007]建筑抢修 Time Limit ... 
随机推荐
- sublime格式化css代码插件:css format
			有时会从网上下载一些css压缩文件,打开后所有代码都在一行,不利于阅读,通过css format插件,能快速展开代码,方便阅读. 参考:Sublime Text 上最好用的 CSS 格式化插件 —— ... 
- Mysql储存过程6: in / out / inout
			in 为向函数传送进去的值 out 为函数向外返回的值 intout 传送进去的值, 并且还返回这个值 )) begin then select 'true'; else select 'false' ... 
- 135.Candy---贪心
			题目链接 题目大意:分糖果,每个小朋友都有一个ratings值,且每个小朋友至少都要有一个糖果,而且每个小朋友的ratings值如果比左右邻舍的小朋友的ratings值高,则其糖果数量也比邻舍的小朋友 ... 
- 用js实现登录的简单验证
			实现过程示意图 代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ... 
- rcnn ->fast rcnn->faster rcnn物体检测论文
			faster rcnn中的rpn网络: 特征可以看做一个尺度51*39的256通道图像,对于该图像的每一个位置,考虑9个可能的候选窗口:三种面积{1282,2562,5122}×三种比例{1:1,1: ... 
- 使用 redis 减少 秒杀库存 超卖思路
			由于数据库查询的及插入的操作 耗费的实际时间要耗费比redis 要多, 导致 多人查询时库存有,但是实际插入数据库时却超卖 redis 会有效的减少相关的延时,对于并发量相对较少的 可以一用 publ ... 
- Cookie对象与Session对象-java
			1.Cookie对象 1.1常见的方法 (1)创建Cookie对象,绑定数据 new Cookie(String name, String value) (2)发送Cookie对象 response. ... 
- bzoj 2819(DFS序+树状数组+博弈+lca)
			2819: Nim Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 2045 Solved: 795[Submit][Status][Discuss] ... 
- objective-c Quick Reference
- 不修改系统日期和时间格式,解决Delphi报错提示 '****-**-**'is not a valid date and time
			假如操作系统的日期格式不是yyyy-MM-dd格式,而是用strtodate('2014-10-01')) 来转换的话,程序会提示爆粗 '****-**-**'is not a valid date ... 
