题目

单调队列+阅读理解

简化题意。

找到一个最长的区间使得区间每个点的r要大于该点之前的点的l。

然后可以用单调队列维护单调递减的l。最后尺取法O(n)枚举所有区间并取最大值。

单调队列可以快速找某个位置左右两侧比他大(或小)的数的位置

#include <bits/stdc++.h>//题目意思就是找到一段最长的区间使得
#define N 1010111
using namespace std;
int n, l[N], r[N], maxn;
deque <int> q;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
scanf("%d%d", &l[i], &r[i]);
q.push_back(1); //q存下标
int now = 0;//now要设为零
for (int i = 2; i <= n; i++)
{
while (!q.empty() && r[i] < l[q.front()])//如果l[队头]大于r[i]的话则不行,等于则不需更新
{
now = q.front();
q.pop_front();
}
if (q.size())
maxn = max(i - now, maxn);//now是满足当前情况下的,最左边的数
while (q.size() && l[i] >= l[q.back()])//队列里满足l单减
q.pop_back();
q.push_back(i);
}
printf("%d", maxn);
return 0;
}
/*
6
6 10
1 5
4 8
2 5
6 8
3 5
*/

最新文章

  1. Python Day13
  2. 【CF】148D Bag of mice
  3. web项目中加入struts2、spring的支持,并整合两者
  4. vmware 无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
  5. iOS开发过程中,触控板的使用技巧
  6. 【BZOJ】3053: The Closest M Points(kdtree)
  7. PHP5.4最新特性
  8. Android_sharePreference
  9. Android系统信息
  10. mysql性能调优与架构设计(一)商业需求与系统架构对性能的影响
  11. Ninject之旅之十三:Ninject在ASP.NET MVC程序上的应用(附程序下载)
  12. 每天一道Java题[7]
  13. Zookeeper 集群安装
  14. java开发师笔试面试每日12题(3)
  15. 在vscode上 运行typescript 文件
  16. Objective-C RunTime 学习笔记 之 AutoReleasPool
  17. 生产者-消费者(wait-notify实现)
  18. Docker部署HDFS
  19. [转]Spring Boot应用的后台运行配置
  20. Xcode 5.1 编译模拟器以及真机都能使用的静态库

热门文章

  1. 机器学习 降维算法: isomap &amp; MDS
  2. .NET子页Main页面实例(UI页面)
  3. Linux下Java变量
  4. Gradle3.0新指令api、provided、implementation等对比
  5. UCOSIII信号量
  6. 社交类app开发( 仿陌陌 客户端+服务器端)
  7. iOS应用图片尺寸制作脚本
  8. 从汇编语言写到c语言
  9. HDFS读流程
  10. MySQL Network--域名与VIP