http://codeforces.com/problemset/problem/739/C 先上链接

这道题 对于蒟蒻的我来说还是很有难度的 调了很久

对于我的代码 mx2是答案 mx1代表单调 mx2双调 带l,r的代表从哪边开始 剩下的自己加油看吧 不是很长来着

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;
const int M=3e5+,maxM=M<<;
LL tag[maxM],vl[maxM],vr[maxM];
int lc[maxM],rc[maxM],sz[maxM],mx1l[maxM],mx1r[maxM],mx2[maxM],mx2l[maxM],mx2r[maxM];
int sum,n,m,L,R,w;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
void up(int x){
int l=lc[x],r=rc[x],v1,v2;
vl[x]=vl[l]; vr[x]=vr[r];
mx1l[x]=mx1l[l]; if(mx1l[l]==sz[l]&&vr[l]>vl[r]) mx1l[x]+=mx1l[r];
mx1r[x]=mx1r[r]; if(mx1r[r]==sz[r]&&vl[r]>vr[l]) mx1r[x]+=mx1r[l];
/*mx2l[x]*/ v1=mx2l[l]; if(mx2l[l]==sz[l]&&vr[l]>vl[r]) v1+=mx1l[r];
v2=; if(mx1r[l]==sz[l]&&vl[r]>vr[l]) v2=mx1r[l]+mx2l[r];
mx2l[x]=max(v1,v2);
/*mx2r[x]*/ v1=mx2r[r]; if(mx2r[r]==sz[r]&&vl[r]>vr[l]) v1+=mx1r[l];
v2=; if(mx1l[r]==sz[r]&&vr[l]>vl[r]) v2=mx1l[r]+mx2r[l];
mx2r[x]=max(v1,v2);
mx2[x]=max(mx2[l],mx2[r]);
if(vr[l]>vl[r]) mx2[x]=max(mx2[x],mx2r[l]+mx1l[r]);
if(vr[l]<vl[r]) mx2[x]=max(mx2[x],mx2l[r]+mx1r[l]);
}
void add(int x,LL w){vl[x]+=w; vr[x]+=w; tag[x]+=w;}
void down(int x){
int l=lc[x],r=rc[x];
add(l,tag[x]); add(r,tag[x]);
tag[x]=;
}
void build(int l,int r){
int x=++sum; sz[x]=r-l+;
if(l==r){vl[x]=vr[x]=read(); mx1l[x]=mx1r[x]=mx2[x]=mx2l[x]=mx2r[x]=; return ;}
int mid=(l+r)>>;
lc[x]=sum+; build(l,mid);
rc[x]=sum+; build(mid+,r);
up(x);
}
void insert(int x,int l,int r){
if(L<=l&&r<=R){add(x,w); return ;}
int mid=(l+r)>>;
if(tag[x]) down(x);
if(L<=mid) insert(lc[x],l,mid);
if(R>mid) insert(rc[x],mid+,r);
up(x);
}
int main()
{
n=read(); build(,n);
m=read(); for(int i=;i<=m;i++) L=read(),R=read(),w=read(),insert(,,n),printf("%d\n",mx2[]);
return ;
}

codeforces739C - Skills &&金中市队儿童节常数赛的更多相关文章

  1. codeforces613B - Skills &&金中市队儿童节常数赛

    题目传送门 本随笔写的是第二题...... 这道题方法就是搞乱....因为n较mxa小 所以枚举达到最大上限的点 然后就乱搞 代码看看咯 #include<cstdio> #include ...

  2. ContestHunter暑假欢乐赛 SRM 01 - 儿童节常数赛 爆陵记

    最后15min过了两题...MDZZ 果然是不适合OI赛制啊...半场写完三题还自信满满的,还好有CZL报哪题错了嘿嘿嘿(这算不算犯规了(逃 悲惨的故事*1....如果没有CZL的话T1 10分 悲惨 ...

  3. 金中半日baoling游-----stoi

    蒟蒻又来水博客了,写个游记啦啦啦啦,好像是第一篇游记咯. 温馨提示:愚人节写的博客看了后会变棒棒哦!(麻麻再也不用担心我被骗) 进入正题 3月31日早6:30左右起床了,然后就是....(此处可省略) ...

  4. 金中宝POS

    金中宝POS机刷卡到账时间:9:00-22:00 现代金控自选商户POS机注意事项 选择: 1 消费 T+1到账(下一个工作日到账) 选择: 2 订单支付 是实时到账! 一.金中宝POS机秒到时间:2 ...

  5. Objective-c 中的算术函数和常数的表示

    常数 常数名 说明 M_PI 圆周率(=π) M_PI_2 圆周率的1/2(=π/2) M_PI_4 圆周率的1/4(=π/4) M_1_PI =1/π M_2_PI =2/π M_E =e M_LO ...

  6. 我们数学中常用的自然常数e代表什么?看完长知识了!

    我们在学习期间都接触过自然常数e,也知道e ≍ 2.718,学过极限的同学应该也知道 那么大家知道e的含义是什么吗?为啥叫“自然常数”? e的含义可以用一个计算利息的例子来解释. 假如你有1块钱,银行 ...

  7. 金中欢乐赛 A题

    题目传送门 这道题就贪心.... 正的一坨和负的一坨间隔 #include<cstdio> #include<cstring> #include<algorithm> ...

  8. 金中欢乐赛 C题

    题目传送门 这道题 hash就可以写了 弄了半天有点智障 强行压一压就okay了的说 #include<cstdio> #include<cstring> #include&l ...

  9. 芜湖市2018市队选拔Day2T1

    好激动啊,Day2竟然AK了! Day2T1养宠物 Descriptionbadgers是可爱的动物,Smart想拥有一些.宠物店提供N个badgers,编号为1..N,Smart都很喜欢,所以他想拥 ...

随机推荐

  1. RevealTrans图片切换效果

    RevealTrans 更新时间:2013-06-01 17:11:59 | RevealTrans兼容性:IE5.5+ 语法: filter : progid:DXImageTransform.Mi ...

  2. jar命令:打包、查看、更新等

    如何把写好的Java程序打包为jar文件呢?下面说的就是java使用命令行打包JAR的方法 1.命令行的方式:打包jar cf JAR文件名称 程序文件名称或者程序所在的文件夹举例:jar cf My ...

  3. BI领军者之一Tableau试用浅谈

    下图是最新的Gartner BI Magic Quadrant,其中领军者之一的Tableau表现的异常突出,执行力象限上直接甩开其它产品一条街,前瞻性象限上略微超越了MSBI,怀着无比的好奇心,特意 ...

  4. Android应用开发中的夜间模式实现(一)

    前言 在应用开发中会经常遇到要求实现夜间模式或者主题切换具体例子如下,我会先讲解第一种方法. 夜间模式 知乎 网易新闻 沪江开心词场 Pocket 主题切换 腾讯QQ 新浪微博 我今天主要是详述第一种 ...

  5. 最小总代价 状压DP

    描述 n个人在做传递物品的游戏,编号为1-n. 游戏规则是这样的:开始时物品可以在任意一人手上,他可把物品传递给其他人中的任意一位:下一个人可以传递给未接过物品的任意一人. 即物品只能经过同一个人一次 ...

  6. 子串查询(二维前缀数组) 2018"百度之星"程序设计大赛 - 资格赛

    子串查询 Time Limit: 3500/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Subm ...

  7. CodeForces - 948C(前缀和 + 二分)

    链接:CodeForces - 948C 题意:N天,每天生产一堆雪体积 V[i] ,每天每堆雪融化 T[i],问每天融化了多少雪. 题解:对 T 求前缀和,求每一堆雪能熬过多少天,再记录一下多余的就 ...

  8. URAL 1736 Chinese Hockey(网络最大流)

    Description Sergey and Denis closely followed the Chinese Football Championship, which has just come ...

  9. 并查集——hdu1232(入门)

    传送门:畅通工程 实质是求连通分支的数量 #include <iostream> #include <cstdio> #include <algorithm> us ...

  10. Python如何进行中文注释

    最近,由于实习工作的需要,开始接触Python,但是第一个大的脚本写下来之后,连中文注释都没办法加,很郁闷,遂在网上找解决办法,在Python 官网上看到这个页面:http://www.python. ...