标签:
| Time Limit: 2000MS | Memory Limit: 65536K | |
| Total Submissions: 4470 | Accepted: 1698 |
Description

Input
Output
Sample Input
5 3 -2 1 2 -5 4 2 -2 5 -5 2 -4 5 -1
Sample Output
4 4 3 5
Source
POJ Monthly--2006.01.22,Zeyuan Zhu
题目大意:求环形的区间中连续区间的最大和,,但是不能都取
maxv连续区间最大和
minv连续区间的最小和
lmax从左最大
lmin从左最小
rmax从右最大
rmin从有最小
sum区间所有数的和
ac代码
#include<stdio.h>
#include<string.h>
#define max(a,b) (a>b?a:b)
#define min(a,b) (a>b?b:a)
struct s
{
int sum;
int maxv,minv;
int lmin,lmax;
int rmin,rmax;
}node[100010<<2];
void init(int tr,int num)
{
node[tr].sum=num;
node[tr].maxv=node[tr].minv=num;
node[tr].lmin=node[tr].lmax=num;
node[tr].rmin=node[tr].rmax=num;
}
void pushup(int tr)
{
node[tr].sum=node[tr<<1].sum+node[tr<<1|1].sum;
node[tr].lmax=max(node[tr<<1].lmax,node[tr<<1].sum+node[tr<<1|1].lmax);
node[tr].rmax=max(node[tr<<1|1].rmax,node[tr<<1|1].sum+node[tr<<1].rmax);
node[tr].lmin=min(node[tr<<1].lmin,node[tr<<1].sum+node[tr<<1|1].lmin);
node[tr].rmin=min(node[tr<<1|1].rmin,node[tr<<1|1].sum+node[tr<<1].rmin);
node[tr].maxv=max(max(node[tr<<1].maxv,node[tr<<1|1].maxv),node[tr<<1].rmax+node[tr<<1|1].lmax);
node[tr].minv=min(min(node[tr<<1].minv,node[tr<<1|1].minv),node[tr<<1].rmin+node[tr<<1|1].lmin);
}
void build(int l,int r,int tr)
{
if(l==r)
{
int num;
scanf("%d",&num);
init(tr,num);
return;
}
int mid=(l+r)>>1;
build(l,mid,tr<<1);
build(mid+1,r,tr<<1|1);
pushup(tr);
//node[tr].sum=node[tr<<1].sum+node[tr<<1|1].sum;
}
void update(int pos,int num,int l,int r,int tr)
{
if(l==r)
{
init(tr,num);
return;
}
int mid=(l+r)>>1;
if(pos<=mid)
update(pos,num,l,mid,tr<<1);
else
update(pos,num,mid+1,r,tr<<1|1);
pushup(tr);
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
build(1,n,1);
int m;
scanf("%d",&m);
while(m--)
{
int a,b;
scanf("%d%d",&a,&b);
update(a,b,1,n,1);
if(node[1].sum==node[1].maxv)//不能都取
{
printf("%d\n",node[1].sum-node[1].minv);
}
else
printf("%d\n",max(node[1].sum-node[1].minv,node[1].maxv));//环
}
}
}版权声明:本文为博主原创文章,未经博主允许不得转载。
POJ 题目2750 Potted Flower(线段树求环型区间中连续区间的最大和)
标签:
原文地址:http://blog.csdn.net/yu_ch_sh/article/details/47441827