zoukankan      html  css  js  c++  java
  • P3522 [POI2011]TEM-Temperature

    Miku

    莫名其妙每一天

    如果一天满足和前面的连续一些天可能不下降,那么它的最大气温一定不小于之前序列的每一天的最小气温

    然后这东西用单调队列维护

    再开一个队列维护这一段序列的堆头

    就Ac了

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<deque>
    using namespace std;
    long long t[1000001][2];
    int n;
    int ans=1;//至少为1 
    deque <int> q,q2;
    int x;
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;++i)
    		scanf("%lld%lld",&t[i][0],&t[i][1]);
    	for(int i=1;i<=n;++i){
    		if(q.empty()){
    			q.push_back(i);
    			q2.push_back(i);
    		}else{
    			while(!q.empty()&&t[q.front()][0]>t[i][1]){			
    				q.pop_front();
    				q2.pop_front();
    			}
    			x=i;
    			while(!q.empty()&&t[q.back()][0]<=t[i][0]){
    				x=q2.back();//继承被踢出的点的编号 
    				q2.pop_back();
    				q.pop_back();
    			}
    			q.push_back(i);
    			q2.push_back(x);
    			ans=max(ans,i-q2.front()+1);
    		}
    	}
    	ans=max(ans,n-q2.front());
    	cout<<ans;
    	return 0;
    }
    
  • 相关阅读:
    Django动态下载文件
    单反学习
    网页开发
    从一堆数中随机取出一些值的方法
    C/C++使用HTTP协议上传
    django 初级(一) 配置与周边
    c++11
    外观模式
    sqlite
    linux程序设计1
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13423163.html
Copyright © 2011-2022 走看看