1668: 高桥和低桥

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 42  Solved: 25
[Submit][Status][Web Board]

Description

有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不算“淹了两次”。举例说明:

假定高桥和低桥的高度分别是5和2,初始水位为1

第一次洪水:水位提高到6(两个桥都被淹),退到2(高桥不再被淹,但低桥仍然被淹)

第二次洪水:水位提高到8(高桥又被淹了),退到3。

没错,文字游戏。关键在于“又”的含义。如果某次洪水退去之后一座桥仍然被淹,那么下次洪水来临水位提高时不能算“又”淹一次。

输入n座桥的高度以及第i次洪水的涨水水位ai和退水水位bi,统计有多少座桥至少被淹了k次。初始水位为1,且每次洪水的涨水水位一定大于上次洪水的退水水位。

Input

输入文件最多包含25组测试数据。每组数据第一行为三个整数n, m, k(1<=n,m,k<=105)。第二行为n个整数hi(2<=hi<=108),即各个桥的高度。以下m行每行包含两个整数ai和bi(1<=bi<ai<=108, ai>bi-1)。输入文件不超过5MB。

Output

对于每组数据,输出至少被淹k次的桥的个数。

Sample Input

2 2 2
2 5
6 2
8 3
5 3 2
2 3 4 5 6
5 3
4 2
5 2

Sample Output

Case 1: 1Case 2: 3

HINT

Source

【题解】:

哈哈哈哈!!!!!好题解,我看了很久了。

可以的,看题目,不能正着搜

题解很妙,写个题解,学习一下:

num[ i ] ++  表示从第 i 个桥开始都被淹了     被淹的次数 + 1,num[ j ]  - -  表示到第 j 个桥

开始都没有被淹    因为从 i 桥开始都 +1 了   所以从在这点要把那个 1  减去


#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<set>
#include<map>
using namespace std;
int h[100010];
int sum[100010];
int main()
{int n,m,k,ca=0;while(~scanf("%d%d%d",&n,&m,&k)){memset(h,0,sizeof(h));memset(sum,0,sizeof(sum));for(int i=0;i<n;i++){scanf("%d",&h[i]);}sort(h,h+n);int num=1;while(m--){int a,b;scanf("%d%d",&a,&b);int left=lower_bound(h,h+n,num+1)-h;  ///函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置,且last的位置是越界的!!~/// 返回查找元素的第一个可安插位置,也就是“元素值>=查找值”的第一个元素的位置int right = lower_bound(h,h+n,a+1)-h;  ///查找元素的最后一个可安插位置,也就是“元素值>查找值”的第一个元素的位置num=b;sum[left]++;sum[right]--;}int ans=0;int cur=0;for(int i=0;i<n;i++){cur+=sum[i];if(cur>=k){ans++;}}printf("Case %d: %d\n",++ca,ans);}return 0;
}

1668: 高桥和低桥相关推荐

  1. zcmu-1668: 高桥和低桥

    1668: 高桥和低桥 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 38  Solved: 22 [ Submit][ Status][ Web B ...

  2. zcmu1668 高桥和低桥

    1668: 高桥和低桥 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 42  Solved: 25 [Submit][Status][Web Boar ...

  3. csu1335 高桥与低桥

    Description 有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不 ...

  4. CSU 1335 高桥和低桥(二分)

    高桥和低桥 Description 有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥 ...

  5. 高桥和低桥 (离散化 )

    有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不算"淹了两次& ...

  6. CSU - 1335 高桥和低桥

    有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不算"淹了两次& ...

  7. UVA 12663 第九届省赛 高桥与低桥 线段树

    题意很简单,n个桥的高度是事先给出来的,然后有m次涨水与落水的高度,问有多少座桥在这m次涨落之后 被淹超过了k次,如果某桥本身被水淹了,此时再涨水,就不能算多淹一次 看下数据10的五次方,10的五次方 ...

  8. 高桥和低桥----题解

    输入: 2 2 2 2 5 6 2 8 3 5 3 2 2 3 4 5 6 5 3 4 2 5 2输出: Case 1: 1 Case 2: 3 #include<iostream> #i ...

  9. 工程伦理学_笔记(复习用)

    工程伦理学 第一章 工程与伦理 1.1 如何理解工程 一.技术与工程的区别 二.技术与工程的联系 三.工程的定义 五.工程具有不确定性和探索性 六.理解工程活动的7个维度 1.2 如何理解伦理 一.道 ...

最新文章

  1. centos 7 php mysql apache_CentOS 7 搭建 Apache+MySQL+PHP
  2. java注释的简单_Java简单注解
  3. 自相关矩阵和互相关矩阵的matlab实现
  4. 集宁师范学院泉山校区计算机系,集宁师范学院有几个校区及校区地址
  5. Inna and Binary Logic
  6. 一步一步理解Paxos算法
  7. Person matching query does not exist;Django增删改查异常
  8. [转] .NET 3.5中MSChart组件的ImageLocation属性含义
  9. 数据结构--链表--约瑟夫环问题(单向循环链表)
  10. TCP VS UDP
  11. get 和 post的区别
  12. html5怎么联网,HTML5--离线web应用
  13. 餐饮智能化:餐饮机器人正当时餐饮机器人的喜与忧
  14. VS2015卸载经过
  15. 汉诺塔递归算法python详细解析图_python实现汉诺塔递归算法经典案例
  16. CentOS加入Windows域
  17. 查看电脑ip地址的命令Linux,怎么用ipconfig命令查看自己电脑的IP地址
  18. 情人节数码好物推荐,值得入手的四款数码好物分享
  19. 荒岛求生html5母狼攻,荒岛求生各资源作用及获取方法解析 荒岛求生资源怎么获得...
  20. LintCode题解【Python版】

热门文章

  1. 微信文件删除了怎么恢复,2个实测有效的办法推荐
  2. 聊聊kafka consumer offset lag increase异常
  3. Android 输入法显示图标
  4. 计算机专业调研报告图片,计算机专业毕业设计论文(计算机专业调研报告范文)...
  5. 简单讲解前序遍历,中序遍历,后序遍历和层次遍历
  6. 雾计算中的数据安全问题综述
  7. spring 定时器,时间设置
  8. vue路由router的props配置
  9. 如何有效管理自己电脑里的文件?
  10. js符号转码_js 字符串编码转换函数