原题目

  某个帝国修了一条非常非常长的城墙来抵御外敌,城墙共分N段,每一段用一个整数来描述坚固程度。

  过了几年,城墙年久失修,有很多段都己经损坏,于是皇帝决定派你去修理城墙,但是经费有限.

  所以你准备先考察一下城墙如果一段连续的城墙它们的坚固程度之和>0,邵么我们认为这段城墙暂时有效。

  例如

  5

  -5 1 - 3 2 3

  这段城墙共分5段,坚固程度之和=1.要比0大,我们认为它还算有效

  下面告诉你N段城墙的坚固情况。

  请你求出最长的一段连续的城墙,要求坚固程度之和>0

  第1行是一个数N。

  第2行共N个整数,Ai描述第i段城墙的坚固程度:

  输出共一行一个整数,最长的一段连续城墙的长度;

S1:

  Input:

-  -   - -  - 

  Output:



  Describe:维护一个前缀和单调减的队列,保证后面减前面[也就是sum[l->r]]为正。

  code:

#include<bits/stdc++.h>
#define rep(a,b) for(register int i=(a);i<=(b);i++)
#define per(a,b) for(register int i=(a);i>=(b);i--)
using namespace std;
long long l,r,n,ans,tot,a[5959595],q[5050505],now;
inline int read(){
int ret=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9') {if (ch=='-') f=-f;ch=getchar();}
while (ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
int main(){
n=read();
for(int i=1;i<=n;i++)a[i]=a[i-1]+read();
for(int i=1;i<=n;i++)
{
l=0,r=tot,now=0x7fffffff; //初始化
while(l<=r){ //二分,由于q是单调队列,满足单调性
long long mid=l+r>>1;
if(a[i]>a[q[mid]])now=mid,r=mid-1; //找当前值[前缀和]在q中的位置
else l=mid+1;
}
if(a[i]<a[q[tot]])q[++tot]=i; //无弹出,所以编号也满足单调减。越前面的越好,对答案的贡献越大[若在队尾加入队列]
if(now!=0x7fffffff)ans=max(i-q[now],ans); //加入ans
}
cout<<ans;
return 0;
}

  

Day6-T3的更多相关文章

  1. 安徽师大附中%你赛day6 T3 Hamsters [POI2010]CHO-Hamsters 解题报告

    [POI2010]CHO-Hamsters 题意: 给出n个互不包含的字符串,要求你求出一个最短的字符串S,使得这n个字符串在S中总共至少出现m次,问S最短是多少? 范围: \(1 \le n \le ...

  2. python笔记 - day6

    python笔记 - day6 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 大纲: 利用递归,实现阶乘: Python反射 pyt ...

  3. 考前停课集训 Day6 垒

    Day 6 今天在家里的 家里蹲 其实是day7的时候想到要写day6了 草率补充一下 NOIP考前棕名退不掉咯 你觉得我还会打洛谷的题目吗? 依然退步 没用心 T1 分火腿 数论题 我感觉挺难的 T ...

  4. 【FCS NOI2018】福建省冬摸鱼笔记 day6【FJOI 2018】福建省选混分滚蛋记 day1

    记录一下day6发生的事情吧. 7:30 到达附中求索碑,被人膜,掉RP. 7:50 进考场,6楼的最后一排的最左边的位置,世界上最角落的地方,没有任何想法. 发现电脑时间和别人不一样,赶快调了一下. ...

  5. 2022寒假集训day6

    day6上午还是做四道题T1区域[上机练习]1.编程计算由"*"号围成的下列图形的面积.面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目.如下图所示,在 10*10 ...

  6. Python之路,Day6 - Python基础6

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  7. day6

    开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...

  8. [NOIP2016]愤怒的小鸟 D2 T3 状压DP

    [NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...

  9. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  10. DAY6 处理http头,格式化输出

    <html> <head> <script> function insertStr(str1,n,str2){ if(str1.length<n){ retu ...

随机推荐

  1. mysql查询最大值,最小值,平均值,总和

    select max(score) maxScore,min(score) minScore,avg(score) avgScore,sum(score) sumScore from exam_sco ...

  2. C++:面向对象的相关概念

    对象: 一般意义上的对象:是现实世界中一个实际存在的事物 面向对象方法中的对象:是系统中用来描述客观事物的一个实体 抽象与分类: 分类所依据的原则:抽象 抽象出同一类对象的共同属性和行为,形成类 类与 ...

  3. 1014 Waiting in Line (30分)

    1014 Waiting in Line (30分)   Suppose a bank has N windows open for service. There is a yellow line i ...

  4. Rcnn/Faster Rcnn/Faster Rcnn的理解

    基于候选区域的目标检测器 1.  滑动窗口检测器 根据滑动窗口从图像中剪切图像块-->将剪切的图像块warp成固定大小-->cnn网络提取特征-->SVM和regressor进行分类 ...

  5. mybatis typealias 问题

    最近在学mybatis  在一个简单的问题上却花了挺长时间 网上也没发现有类似的案例 故记录一下 在configuration里面 typealias 和 properties 同时用会出错 具体原因 ...

  6. Scrapy 常用的shell执行命令

    1.在任意系统下,可以使用 pip 安装 Scrapy pip install scrapy/ 确认安装成功 >>> import scrapy >>> scrap ...

  7. Servlet(1):request和response对象

    1.Servlet的生命周期 /** * Servlet的生命周期: * 1.从第一次调用到服务器关闭. * 2.如果Servlet在web.xml中配置了load-on-startup,生命周期为从 ...

  8. HashMap ( Java 8)

    HashTable是早起java提供的基于hash表的实现,不允许存放null键和值,是同步的,影响开销,不太被推荐. HashMap行为上和HashTable差不多,不是同步的,允许键和值为null ...

  9. java并发AtomicReference

    java并发AtomicReference AtomicReference的作用 已经介绍过AtomicInteger,AtomicIntegerArray,AtomicReference是针对对象的 ...

  10. Raspbian设置静态ip

    Raspbian static ip 最近入手了树莓派4b,并更具官方教程安装了Raspbian.由于直接通过wifi连接,每次ip跳来跳去很不方便,于是便想着设置静态ip. 由于Raspbian本身 ...