FZYZOJ-1569 喝水
P1569 -- 喝水
时间限制:2000MS 内存限制:131072KB
状态:Accepted 标签: 无 无 无
Description
GH的N个妹子要喝水,喝水有个时间从A时刻开始到B时刻结束。求最少需要多少个水龙头供水(GH的妹子都用水龙头喝水。。。。。。。。。。)
Input Format
输入第一行一个数N,接下来N行每行一对A,B。
Output Format
输出一个数为答案。
Sample Input
5
1 10
2 4
3 6
5 8
4 7
Sample Output
4
Hint
对于10%的数据N<=10
对于100%的数据N<=2000000,A,B<=15000000
本题输入文件不超过35M,建议开启输入优化。
题解
这道题是区间覆盖的问题。不难看出只要区间不相交的所有区间都可以公用一个水龙头。我们可以用“差分“来解决这个问题。对于区间[A,B],差分数组Q[A]++, Q[B + 1]--。不难看出,这样一直做下去,会先把[A,B],[B + 1, C]这样的区间合并在一起。最后遍历差分数组,用Cnt += Q[i], Ans = Max(Ans, Cnt)。答案即Ans。之所以要取一个Max,因为右端点会减一,且会和左端点加一把不相交的区间只算一次,Cnt最大的时候表示的即答案。
代码
#include <cstdio>
#include <iostream>
#define SIZE 15000010
#define INF 210000000
using namespace std; char B[<<],*S=B,*T=B;char getc(){
return S==T&&(T=(S=B)+fread(B,,<<,stdin),S==T)?:*S++;
}
#define isd(c) (c>='0'&&c<='9')
int aa,bb;char ch;int Scan(){
while(ch=getc(),!isd(ch)&&ch!='-');ch=='-'?aa=bb=:(aa=ch-'',bb=);
while(ch=getc(),isd(ch))aa=aa*+ch-'';return bb?aa:-aa;
} int N;
int L = INF, R;
int Left, Right;
int Q[SIZE];
int Cnt, Ans; int Min(int A, int B) {
return A < B ? A : B;
} int Max(int A, int B) {
return A > B ? A : B;
} int main() {
N = Scan();
for (int i = ; i <= N; ++i) {
Left = Scan(); Right = Scan();
L = Min(Left, L);
R = Max(Right, R);
++Q[Left];
--Q[Right + ];
}
for (int i = L; i <= R + ; ++i) Cnt += Q[i], Ans = Max(Ans, Cnt);
printf("%d\n", Ans);
}
FZYZOJ-1569 喝水的更多相关文章
- [BZOJ 3441]乌鸦喝水
		
3441: 乌鸦喝水 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 374 Solved: 148[Submit][Status][Discuss] ...
 - Bzoj3441 乌鸦喝水
		
Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 258 Solved: 97 Description [题目背景] 一只乌鸦在自娱自乐,它在面 ...
 - BZOJ:3441 乌鸦喝水
		
bzoj:3441 乌鸦喝水 题目传送门 Description 一只乌鸦在自娱自乐,它在面前放了n个有魔力的水缸,水缸里装有无限的水. 他准备从第1个水缸飞到第n个水缸,共m次.在飞过一个水缸的过程 ...
 - 8.18 NOIP模拟测试25(B) 字符串+乌鸦喝水+所驼门王的宝藏
		
T1 字符串 卡特兰数 设1为向(1,1)走,0为向(1,-1)走,限制就是不能超过$y=0$这条线,题意转化为从(0,0)出发,走到(n+m,n-m)且不越过$y=0$,然后就裸的卡特兰数,$ans ...
 - 推荐一款健康App 多喝水,引领全民时尚喝水生活习惯
		
推荐一款健康App 多喝水,引领全民时尚喝水生活习惯 1 介绍 多喝水,一款鼓励大众喝水的APP.我们倡导大众健康生活,培养人们爱喝水的习惯,让每一次喝水,都能产生价值,让人们在喝水的同时,可享受赚钱 ...
 - 通过喝水清晰简单了解I/O五大模型
		
一般单次I/O请求会分为两个阶段,每个阶段对于I/O的处理方式是不同的 I/O会经历一个等待资源的阶段 阻塞,指的是在数据不可用时,I/O请求会一直阻塞,直到数据返回 数据不可用时,立即返回,直到被通 ...
 - ACM-牛喝水
		
题目描述:牛喝水 The cows have a line of 20 water bowls from which they drink. The bowls can be either righ ...
 - 【bzoj3441】乌鸦喝水
		
Source bzoj3441 Hint 请先思考后再展开 按被删除的顺序考虑每个点,然后按照题意模拟 Solution 请先思考后再展开 被删除的顺序一定是按照[能被操作的次数]为第一关键字,位置作 ...
 - 「模拟8.18」字符串(卡特兰数)·乌鸦喝水(树状数组,二分)·所驼门王的宝藏(tarjan,拓扑)
		
最近好颓啊,所以啥都做不出来 简单说一下这次考试,分机房了,还分不同考卷,果然我还是留在二机房的蒟蒻, 大概也只有这样的简单题,才能勉强水个rank 3吧........ 其实不必管在哪个机房,努力便 ...
 
随机推荐
- IK分词算法设计总结
			
IK分词算法设计思考 加载词典 IK分词算法初始化时加载了“敏感词”.“主词典”.“停词”.“量词”,如果这些词语的数量很多,怎么保证加载的时候内存不溢出 分词缓冲区 在分词缓冲区中进行分词操作,怎么 ...
 - 内网映射到公网工具 --- ngrok
			
ngrok可以将内网映射到公网上,这样就可以在公网上访问你的网络服务. 该工具通常在进行app开发和微信开发时比较有用,这样就可避免在公网服务器上单独部署项目,通过映射,直接连接本地服务即可进行开发. ...
 - Linux软件
			
网上下载:Chrome Browser for Linux; sqlite; WPS; symbol-fonts; 软件中心:Terminator; Code::Blocks IDE; 新立得软件 ...
 - 增强iOS应用程序性能的提示和技巧(25个)
			
转自 http://www.cocoachina.com/newbie/basic/2013/0522/6259.html 在开发iOS应用程序时,让程序具有良好的性能是非常关键的.这也是用户所期望的 ...
 - 【转】 wpf系列-入门
			
转自:http://www.cnblogs.com/huangxincheng/category/388852.html 8天入门wpf—— 第八天 最后的补充 摘要: 从这一篇往前看,其实wpf ...
 - this point
			
// this.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using namespa ...
 - Linux fork操作之后发生了什么?又会共享什么呢?
			
今天我在阅读<Unix网络编程>时候遇到一个问题:accept返回时的connfd,是父子进程之间共享的?我当时很不理解,难道打开的文件描述符不是应该在父子进程间相互独立的吗?为什么是共享 ...
 - web版扫雷小游戏(一)
			
作为一名程序猿,平时的爱好也不多,说起游戏,我不太喜欢大型的网游,因为太耗时间,偶尔玩玩经典的单机小游戏,比如windows下自带的游戏扫雷(秀一下,高级下最高纪录110s). 现阶段正在致力于web ...
 - VLC命令参数(转载)
			
转载自: http://blog.csdn.net/bytxl/article/details/6613449 http://www.cnblogs.com/MikeZhang/archive/201 ...
 - An erroroccurred while filtering resources
			
maven报错: maven An error occurred while filtering resources Maven -> Update Project... resolved th ...