uva 1440
题意描述:给出一个长度为n的证书序列D,你的任务是对m个询问做出回答。对于询问(a,b),需要找到两个下标x和y,使得a<=x<=y<=b,并且Dx+...Dy尽量大。如果有多组满足,x应尽量小。如果还有多解,y应尽量小。
==没有力气写题解了,Wa了五次,累觉不爱,记录一下五次分别改的地方好了。Time排进了前十。。还是比较开心。。
code:
#include
#include
#include
#include
using namespace std;
const int maxn=500000+10;struct node{
int l,r;
long long sum,pre,suf,ma;
int R,L;
}o[maxn*4];
long long a[maxn];void build(int e,int x,int y){if(x==y){o[e].sum=o[e].pre=o[e].suf=o[e].ma=a[x];o[e].l=o[e].r=o[e].R=o[e].L=x;return;}else{int mid=x+(y-x)/2;build(e*2,x,mid);build(e*2+1,mid+1,y);o[e].sum=o[e*2].sum+o[e*2+1].sum;int luck=1;long long now=o[e*2].m
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
