codeforces739C - Skills &&金中市队儿童节常数赛

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+233,maxM=M<<1;
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=0,f=1,c=getchar();
    while(c<‘0‘||c>‘9‘){if(c==‘-‘) f=-1; c=getchar();}
    while(c>=‘0‘&&c<=‘9‘){ans=ans*10+(c-‘0‘); 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=0; 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=0; 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]=0;
}
void build(int l,int r){
    int x=++sum; sz[x]=r-l+1;
    if(l==r){vl[x]=vr[x]=read(); mx1l[x]=mx1r[x]=mx2[x]=mx2l[x]=mx2r[x]=1; return ;}
    int mid=(l+r)>>1;
    lc[x]=sum+1; build(l,mid);
    rc[x]=sum+1; build(mid+1,r);
    up(x);
}
void insert(int x,int l,int r){
    if(L<=l&&r<=R){add(x,w); return ;}
    int mid=(l+r)>>1;
    if(tag[x]) down(x);
    if(L<=mid) insert(lc[x],l,mid);
    if(R>mid)  insert(rc[x],mid+1,r);
    up(x);
}
int main()
{
    n=read(); build(1,n);
     m=read(); for(int i=1;i<=m;i++) L=read(),R=read(),w=read(),insert(1,1,n),printf("%d\n",mx2[1]);
    return 0;
}

时间: 2024-11-09 00:04:34

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

2534 渡河 2013年市队选拔赛广州

2534 渡河 2013年市队选拔赛广州 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有N个人需要渡河到对岸,但是只有一条小船,只能乘坐两人,请问怎么能够让他们以最少的时间渡河到对岸呢? 输入描述 Input Description 输入为两行,第一行为渡河的人数N (1<=N<=1000) 第二行为N个正整数,范围是 [1,100],代表他们划船到对岸需要多少分钟 输出描述 Output Description 输出只有

CSU-ACM2014年校队选拔赛指导赛解题报告

•Problem A  CSU 1065                               贪心 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 const int maxn = 1000010; 6 struct Node{ 7 int a,b; 8 bool operator < (const Node& rhs)

写给庐中/金中的你

亲爱的庐江中学/金安高中的你: (一) 我在山东省,在一个很小的城市威海上学,威海市它的另一个名字是“威海卫”,威海这个名字据说是某个朝代成功剿灭倭寇的将军起的,为“威震东海”之意.这里离朝鲜半岛很近,街头随处可见韩国语的招牌,商店也可容易地发现韩国食品.中国一个世纪前这里曾经发生和日本的战争,日本和清朝.民国的战舰曾经在这里对峙,交火:而三十年前,这里还是一座县城,威海的长官想把威海升格为一个城市,而一所城市需要一所大学,所以长官到济南和哈尔滨找到当地最好的大学的领导,邀请他们来威海建分校(校

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_LOG2E log_2(e) M_LOG10E log_10(e) 算术函数 函数名 说明 int rand() 随机数生成. (例) srand(time(nil)); //随机数初期化 int val = rand()%50; //0-49之间的随机数 int abs(int a) 整数的绝对值 (

队内ACM赛

T1 心灵终结 打表找规律... 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 7 long long T,n,m; 8 9 long long solve(long long x){ 10 if(x%4==0)return x; 11 if(x%4==1)return x+1; 12 if(

第三届光明区创新创业大赛启动仪式火热报名中,参与光创赛,你准备好了吗?

为加快实施光明区创新驱动发展战略,培育壮大创新力量.弘扬创新创业精神.厚植创新创业文化.展示创新创业成果,光明区将于6月13日14点举办第五届深圳国际创客周光明区分会场暨第三届光明区创新创业大赛启动仪式.活动的参与对象主要有区政府部门.招商局相关领导.创投机构.香港高校.区创客空间.区知名企业.创客团队.媒体代表. 在本次活动流程中有一大亮点--光明区创新科技成果展示.医用生物.智能硬件.智能穿戴设备.智能制造.先进制造.等离子渗入技术.车联网系统等来自众创空间.街道.学校推荐的20多个高新技术

纪中某日c组模拟赛 2314. 最短路

2314. 最短路 (File IO): input:dti.in output:dti.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto ProblemSet 题目描述 输入 样例输出 数据范围限制 原文地址:https://www.cnblogs.com/send-off-a-friend/p/11359152.html

NS3中一些难以理解的常数

摘要:在NS3的学习中,PHY MAC中总有一些常数,需要理解才能修改.如帧间间隔等.那么,本文做个简单分析,帮助大家理解.针对802.11标准中MAC协议.   void WifiMac::Configure80211b (void) { SetSifs (MicroSeconds (10)); SetSlot (MicroSeconds (20)); SetEifsNoDifs (MicroSeconds (10 + 304)); SetPifs (MicroSeconds (10 + 20

JQUERY省、市、县城市联动选择

JQUERY 插件开发——CITYLINKAGE(省.市.县城市联动选择) 第一部分:背景   开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了...此处省去N个字).然后最近“瘾”又犯了,呵呵,随手就拿这个“欠”了很久的插件开刀了.大家都应该知道“某宝”的这个插件写的还是很强大的,支持到街道(镇)级别...可见他们维护的前端数据有多大...不过呢,临渊羡鱼,不如退