bzoj 2276: [Poi2011]Temperature

bzoj 2276: [Poi2011]Temperature

大家好,又见面了,我是全栈君。

2276: [Poi2011]Temperature

Time Limit: 20 Sec  Memory Limit: 32 MB

Submit: 749  Solved: 344

[
Submit][
Status][
Discuss]

Description

The Byteotian Institute of Meteorology (BIM) measures the air temperature daily. The measurement is done automatically, and its result immediately printed. Unfortunately, the ink in the printer has long dried out… The employees of BIM however realised the fact only recently, when the Byteotian Organisation for Meteorology (BOM) requested access to that data.

An eager intern by the name of Byteasar saved the day, as he systematically noted down the temperatures reported by two domestic alcohol thermometers placed on the north and south outside wall of the BIM building. It was established decades ago by various BIM employees that the temperature reported by the thermometer on the south wall of the building is never lower than the actual temperature, while that reported by the thermometer on the north wall of the building is never higher than the actual temperature. Thus even though the exact temperatures for each day remain somewhat of a mystery, the range they were in is known at least.

Fortunately for everyone involved (except Byteasar and you, perhaps), BOM does not require exact temperatures. They only want to know the longest period in which the temperature was not dropping (i.e. on each successive day it was no smaller than on the day before). In fact, the veteran head of BIM knows very well that BOM would like this period as long as possible. To whitewash the negligence he insists that Byteasar determines, based on his valuable notes, the longest period in which the temperature could have been not dropping. Now this is a task that Byteasar did not quite expect on his BIM internship, and he honestly has no idea how to tackle it. He asks you for help in writing a program that determines the longest such period.

某国进行了连续n天的温度测量,测量存在误差,测量结果是第i天温度在[l_i,r_i]范围内。
求最长的连续的一段,满足该段内可能温度不降。

 

Input

In the first line of the standard input there is one integer n(1<=N<=1000000) that denotes the number of days for which Byteasar took notes on the temperature. The measurements from day are given in the line no.i+1 Each of those lines holds two integers, x and y (-10^9<=x<=y<=10^9). These denote, respectively, the minimum and maximum possible temperature on that particular day, as reported by the two thermometers.

In some of the tests, worth 50 points in total, the temperatures never drop below -50 degrees (Celsius, in case you wonder!) and never exceeds 50 degrees (-50<=x<=y<=50)  

 

 

 

第一行n
下面n行,每行l_i,r_i
1<=n<=1000000

Output

In the first and only line of the standard output your program should print a single integer, namely the maximum number of days for which the temperature in Byteotia could have been not dropping.

 

 

 

一行,表示该段的长度

Sample Input

6

6 10

1 5

4 8

2 5

6 8

3 5

Sample Output

4
bzoj 2276: [Poi2011]Temperature
bzoj 2276: [Poi2011]Temperature

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1000010;
int a[N],b[N],q[N],f[N];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d %d",&a[i],&b[i]);
    int tail=0,head=1,ans=0;
    f[0]=1;
    for(int i=1;i<=n;i++)
    {
        while(tail>=head&&a[q[tail]]<=a[i]) tail--;
        q[++tail]=i;
        f[i]=f[i-1];
        while(a[q[head]]>b[i]) f[i]=q[head++]+1;
    }
    for(int i=1;i<=n;i++) ans=max(ans,i-f[i]+1);
    printf("%d",ans);
    return 0;
}

View Code

单调队列!!!

difficult.

转载于:https://www.cnblogs.com/12fs/p/7545261.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108152.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 缺陷报告总结_缺陷报告要素

    缺陷报告总结_缺陷报告要素缺陷的分类严重程度:严重一般、次要、轻微、优先级:立即解决、高级优先、正常排队、低优先级种类:界面、功能、安全、兼容、性能阶段:需求、架构、设计、编码、测试缺陷报告核心要素(8)缺陷编号缺陷标题缺陷状态重现步骤严重程度优先级缺陷类型测试环境缺陷八种状态:新建、指派、打开、修复、拒绝、延期、关闭、重新打开。…

    2022年9月17日
    0
  • 虚拟机怎么安装vmware tools

    虚拟机怎么安装vmware tools这篇文章主要为大家详细介绍了VMwareWorkstation12安装Ubuntu和VMwareTools教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下之前我通过百度经验上的过程来安装Ubuntu16,但是每次安装的时候没有什么问题,就是安装好了Tools,也设置好了共享文件夹,但是在路径:/mnt/hgfs下每次都找不到共享文件夹。后来我研究了好久,应该是安装的时候…

    2022年5月25日
    36
  • python中的if语句格式_python if判断

    python中的if语句格式_python if判断if判断语句if判断语句介绍if语句是用来进行判断的,其使用格式如下:if要判断的条件:条件成立时,要做的事情demo1:age=30print”——if判断开始——“ifage>=18:print”我已经成年了”print”——if判断结束——“

    2022年9月26日
    0
  • emwin用户设置界面_强制刷新快捷键

    emwin用户设置界面_强制刷新快捷键1、在对话框回调函数中定时重绘按键_cbDialogHome(WM_MESSAGE*pMsg){ Switch(pMsg->MsgId){ CaseWM_INIT_DIALOG: WM_CreateTimer(pMsg->hWin,0,100,0);//创建窗口定时器 CaseWM_PAINT://窗口重绘 CaseWM_NOTIFY_

    2022年10月15日
    0
  • 细说php入门学习

    细说php入门学习文章目录1.php基本语法2.变量3.数据类型(1).整型interger(2).浮点型float(3).布尔型boolean(4)字符串string(5).数组array(7).对象boject(8).资源resource(9).空null4.常见函数以及基本语法(1).三种常见函数(2).四种常见输出(3).自动类型转换(4).强制类型转换(5)…

    2022年10月26日
    0
  • rk3288的SDK修复cm3218光敏驱动bug「建议收藏」

    rk3288的SDK修复cm3218光敏驱动bug

    2022年2月4日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号