Miss_dijkstra @ 2019-06-17 20:20:21
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
int tr[N*4];
int lm[N*4],rm[N*4];//更新 左 or 右 端点开始的最大子段和
int maxn[N*4];//更新最大子段和的答案。分三种情况:最大子段只在mid左边,跨过mid,只在mid右边。
int n,m;
int a[N*4];
void pushup(int i)
{
tr[i]=tr[i<<1]+tr[(i<<1)+1];
maxn[i]=max(max(maxn[i<<1],maxn[(i<<1)+1]),rm[i<<1]+lm[(i<<1)+1]);
lm[i]=max(lm[i<<1],tr[i<<1]+lm[(i<<1)+1]);
rm[i]=max(rm[(i<<1)+1],tr[(i<<1)+1]+rm[(i<<1)]);
return;
}
void update(int i,int l,int r,int x,int val)
{
if(l==r)
{
tr[i]=val;
maxn[i]=val;
lm[i]=val;
rm[i]=val;
return;
}
int mid=l+r>>1;
if(mid>=x) update(i<<1,l,mid,x,val);
else update((i<<1)+1,mid+1,r,x,val);
pushup(i);
}
void built(int i,int l,int r)
{
if(l==r)
{
tr[i]=a[l];
maxn[i]=a[l];
lm[i]=a[l];
rm[i]=a[l];
return ;
}
int mid=l+r>>1;
built(i<<1,l,mid);
built((i<<1)+1,mid+1,r);
pushup(i);
}
int L,R,sum;
int run(int i,int l,int r,int x,int y)
{
//cout<<"adasdas"<<l<<" "<<r<<" "<<x<<" "<<y<<endl;
//if(l==2&&r==2&&x==3&&y==2) system("pause");
if(l==x&&r==y)
{
sum=tr[i];
L=lm[i];
r=rm[i];
return maxn[i];
}
int mid=l+r>>1;
if(mid>=y)
return run(i<<1,l,mid,x,y);//只在mid右边
else if(mid<x)
return run((i<<1)+1,mid+1,r,x,y);//只在mid左边
else//跨过mid
{
int tmp=run(i<<1,l,mid,x,mid);
int jxx=L,cjr=R,hj=sum;
int ans=max(tmp,run((i<<1)+1,mid+1,r,mid+1,y));
ans=max(ans,cjr+L);
L=max(jxx,hj+L);
R=max(R,sum+cjr);
return ans;
/*
int jxx=L,cjr=R,hj=sum;
int ans=max(run(i<<1,l,mid,x,mid),run((i<<1)+1,mid+1,r,mid+1,y));
ans=max(ans,cjr+L);
L=max(jxx,hj+L);
R=max(R,sum+cjr);
return ans;
*/
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
cin>>a[i];
//build(1,1,n,i,x);
built(1,1,n);
for(int i=1;i<=m;i++)
{
int x,y,op;
cin>>op>>x>>y;
if(op==1)
{
if(x>y) swap(x,y);
cout<<run(1,1,n,x,y)<<endl;
}
if(op==2)
{
update(1,1,n,x,y);
}
}
return 0;
}
by Miss_dijkstra @ 2019-06-17 20:20:49
和大家一样都是9分
by Irppy3_40 @ 2019-06-17 20:25:42
我 亦 相 逢 又 一 年
也 知 身 世 两 茫 然
不 须 更 问 浮 生 事
会 见 春 风 二 月 天
by Miss_dijkstra @ 2019-06-17 20:30:41
by RedreamMer @ 2019-06-17 20:33:53
@wxh666haha 藏头诗999
by Irppy3_40 @ 2019-06-17 20:36:01
@Mer_
https://jiuge.thunlp.cn//
by __gcd @ 2019-06-17 20:39:09
紫 气 牡 丹 何 处 是
题 诗 杜 宇 亦 堪 怜
不 须 更 问 平 生 事
会 见 春 风 二 月 天
by RedreamMer @ 2019-06-17 20:42:16
@wxh666haha 999厉害
by Retired_lvmao @ 2019-06-17 20:50:13
@Mer_
问世间题为何物
我为此非常无奈
干一题不会一题
嘛都不行真辣鸡
by foxdemon @ 2019-06-17 20:55:46
前排%机房dalao
by RedreamMer @ 2019-06-17 20:58:28
@jiangqisheng
我来何处问蒿莱
没尽青山一笑开
问讯江南春色好
啊人还似旧时才