链接:https://www.nowcoder.com/acm/contest/158/B

求最长连续严格递增序列

线段树模板题,码力弱的一匹调了半天。。

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#define M 100010
#define ls node*2
#define rs node*2+1
using namespace std;
int n,m;
int a[M],ml[M<<],mr[M<<],L[M<<],R[M<<],val[M<<];
void update(int node,int l,int r)
{
int ans=;
if(R[ls]<L[rs]) ans=mr[ls]+ml[rs];
val[node]=max(max(val[ls],val[rs]),ans);
L[node]=L[ls]; R[node]=R[rs];
int mid=(l+r)/;
ml[node]=ml[ls]; mr[node]=mr[rs];
if(ml[ls]==mid-l+&&R[ls]<L[rs]) ml[node]=ml[ls]+ml[rs];
if(mr[rs]==r-mid&&R[ls]<L[rs]) mr[node]=mr[rs]+mr[ls];
}
void build(int node,int l,int r)
{
if(l==r)
{
L[node]=R[node]=a[l];
ml[node]=mr[node]=val[node]=;
return;
}
int mid=(l+r)/;
build(ls,l,mid);
build(rs,mid+,r);
update(node,l,r);
}
void change(int node,int l,int r,int k,int x)
{
if(l==r)
{
L[node]=R[node]=x;
return;
}
int mid=(l+r)/;
if(k<=mid) change(ls,l,mid,k,x);
else change(rs,mid+,r,k,x);
update(node,l,r);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
build(,,n);
printf("%d\n",val[]);
for(int i=;i<=m;i++)
{
int x,y; scanf("%d%d",&x,&y);
change(,,n,x,y);
printf("%d\n",val[]);
}
return ;
}

[nowcoder]最长区间的更多相关文章

  1. hdu 3530 区间和在一定范围内最长区间

    http://acm.hust.edu.cn/vjudge/problem/11253 这题要找到区间和在[m,k]范围内的最长区间 用两个单调序列保存区间最大值和最小值.当最大值-最小值>k时 ...

  2. 牛客训练赛25-A-最长区间

    https://www.nowcoder.com/acm/contest/158#question 这题问最长的严格连续递增序列的最长长度是多少? 最开始感觉这道题不可做,因为有1e5个点,还有1e5 ...

  3. Excel 如何做不定长区间汇总统计

    第一步:创建数据-区间 辅助表(注意:首列值必须以升序排列,为后面vlookup模糊匹配做准备) 第二步:用vlookup模糊匹配生成一个新的“金额区间”字段 第三步:以“金额区间”字段为行透视汇总

  4. (luogu P3358)最长k可重区间集问题 [TPLY]

    最长k可重区间集问题 题目链接 https://www.luogu.org/problemnew/show/3358 做法 所有点向下一个点连容量为k费用为0的边 l和r连容量为1费用为区间长度的边 ...

  5. 区间dp最长回文子序列问题

    状态转移方程如下: 当i > j时,dp[i,j]= 0. 当i = j时,dp[i,j] = 1. 当i < j并且str[i] == str[j]时,dp[i][j] = dp[i+1 ...

  6. 【BZOJ-4653】区间 线段树 + 排序 + 离散化

    4653: [Noi2016]区间 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 107  Solved: 70[Submit][Status][Di ...

  7. [POJ3667]Hotel(线段树,区间合并)

    题目链接:http://poj.org/problem?id=3667 题意:有一个hotel有n间房子,现在有2种操作: 1 a,check in,表示入住.需要a间连续的房子.返回尽量靠左的房间编 ...

  8. poj-----(2528)Mayor's posters(线段树区间更新及区间统计+离散化)

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 43507   Accepted: 12693 ...

  9. 【NOIP模拟_54测试】【并查集】【二进制】【搜索】【区间序列类】

    第一题 Mushroom的序列 大意: 给一个序列,求一段连续最长区间满足:最多改变一个数,使得区间是严格的上升子序列. 解: 直接扫描一遍,记一个最长上升子序列编号.然后从每一个编号为1 的点来判断 ...

随机推荐

  1. SQLServer中Partition By

    http://www.cnblogs.com/vincentonline/p/4999225.html 今天群里看到一个问题,在这里概述下:查询出不同分类下的最新记录.一看这不是很简单的么,要分类那就 ...

  2. Database Designer

    DBDesigner http://fabforce.net/dbdesigner4/index.php DB Designer Fork http://sourceforge.net/project ...

  3. PowerDesign 使用 用户自定义字段类型 domain 后 生成物理模型图 生成的sql脚本 类型 替换问题

    快捷键 CTRL+G

  4. 慎用System.Web.HttpContext.Current

    每当控制流离开页面派生的Web表单上的代码的时候,HttpContext类的静态属性Current可能是有用的. 使用这个属性,我们可以获取当前请求(Request),响应(Response),会话( ...

  5. 如何设置,使IntelliJ IDEA智能提示忽略大小写

  6. Servlet——总结

    当我们学完了JavaSe部分的知识之后,如果我们往Web方面发展和学习的话,我们将会接触到一个非常重要的web技术——Servlet.在说明Servlet的配置之前我们先来了通过下面的请求响应图解一下 ...

  7. pt-online-schema-change线上DDL注意事项

    在使用pt-online-schema-change做线上DDL的时候对于数据量比较小的表问题不大,但是对于数据量比较大的表(比如:单表2亿数据)访问量较大的时候就有可能出现异常, 原本使用pt-on ...

  8. iOS核心动画详解(CABasicAnimation)

    前言 上一篇已经介绍了核心动画在UI渲染中的位置和基本概念,但是没有具体介绍CAAnimation子类的用法,本文将介绍CABasicAnimation及其子类CASpringAnimation的用法 ...

  9. IO流入门-第二章-FileOutputStream

    FileOutputStreamj基本用法和方法示例 /* java.io.OutputStream java.io.FileOutputStream 文件字节输出流 将计算机内存中的数据写入到硬盘文 ...

  10. 服务器1M带宽同时能承受多少人在线

    最近网站的流量一直在增长,这个肯定是好事.不过也有个麻烦的问题,目前本站用的的虚拟空间,每月流量30G,虽然95%的图片都已外链,但流量还是很吃紧,日均2000ip,4月份流量34g左右,单JS的响应 ...