Codeforces Round #292 (Div. 2)
2015-02-19 13:47
267 查看
http://codeforces.com/contest/515
ABC略= =
D:贪心,把度数为1的点去掉,然后就没了,我果弱。。。。。。。。
E:水笔线段树,没开long long结果fst了啊啊啊啊啊QAQ
C题hack掉两个啦啦啦~~~
ABC略= =
D:贪心,把度数为1的点去掉,然后就没了,我果弱。。。。。。。。
E:水笔线段树,没开long long结果fst了啊啊啊啊啊QAQ
C题hack掉两个啦啦啦~~~
#include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <cmath> #include <algorithm> using namespace std; #define rep(i,l,r) for(int i=(l),_=(r);i<=_;i++) #define per(i,r,l) for(int i=(r),_=(l);i>=_;i--) #define MS(arr,x) memset(arr,x,sizeof(arr)) #define INE(i,u) for(int i=head[u];~i;i=e[i].next) #define LL long long inline const int read() {int r=0,k=1;char c=getchar();for(;c<'0'||c>'9';c=getchar())if(c=='-')k=-1; for(;c>='0'&&c<='9';c=getchar())r=r*10+c-'0';return k*r;} //////////////////////////////////////////////// int n,m; int d[200010]; int h[200010]; struct data { LL s,sr,sl,dis; }dat[800010]; //////////////////////////////////////////////// data unio(const data &a,const data &b,int mid) { data res; res.s=max(a.s,b.s); res.s=max(res.s,a.sr+b.sl+d[mid]); res.sr=max(b.sr,b.dis+a.sr+d[mid]); res.sl=max(a.sl,a.dis+b.sl+d[mid]); res.dis=a.dis+b.dis+d[mid]; return res; } #define LS o<<1,L,mid #define RS o<<1|1,mid+1,R void build(int o,int L,int R) { if(L==R) { dat[o]=(data){2*h[L],2*h[L],2*h[L],0}; return; } int mid=L+R>>1; build(LS); build(RS); dat[o]=unio(dat[o<<1],dat[o<<1|1],mid); } data query(int l,int r,int o,int L,int R) { if(l<=L && R<=r) return dat[o]; int mid=L+R>>1; if(r<=mid) return query(l,r,LS); else if(l>mid) return query(l,r,RS); else return unio(query(l,mid,LS),query(mid+1,r,RS),mid); } //////////////////////////////////////////////// void input() { n=read(); m=read(); rep(i,1,n) d[i]=d[n+i]=read(); rep(i,1,n) h[i]=h[n+i]=read(); } void solve() { build(1,1,2*n); rep(i,1,m) { int l=read(),r=read(); if(l<=r) { r++; l--; l+=n; swap(l,r); } else { swap(l,r); l++; r--; } printf("%I64d\n",query(l,r,1,1,2*n).s); } } //////////////////////////////////////////////// int main() { freopen("E.in","r",stdin); freopen("E.out","w",stdout); input(),solve(); return 0; }
相关文章推荐
- Codeforces Round #292 (Div. 2)——A——Drazil and Date
- Codeforces Round #292 DIV2 题解
- Codeforces Round #292 (Div. 2) -- A. Drazil and Date
- Codeforces Round #292 (Div. 2)D. Drazil and Tiles
- Codeforces Round #292 (Div. 2)——B——Drazil and His Happy Friends
- Codeforces Round #292 (Div. 2) A. Drazil and Date
- Codeforces Round #292 (Div. 1) - B. Drazil and Tiles
- Codeforces Round #292 (Div. 2) -- D. Drazil and Tiles (拓扑排序)
- Code forces Round #292 div2
- Codeforces Round #292 (Div. 1)
- Codeforces Round #292 (Div. 2)(A,B,C)
- Codeforces Round #292 (Div. 1) B. Drazil and Tiles (类似拓扑)
- Codeforces Round #292 (Div. 2) -- C. Drazil and Factorial
- Codeforces Round #292 (Div. 2)C,D拓扑排序
- Codeforces Round #292 (Div. 1) C. Drazil and Park
- Codeforces Round #292 (Div. 2) C. Drazil and Factorial(贪心YY)
- Codeforces Round #364 (Div. 1) 题解(待续)
- Codeforces Round #248 (Div. 2) B称号 【数据结构:树状数组】
- 【Codeforces Round 364 (Div 2)B】【简单讨论】Cells Not Under Attack 行列炮台覆盖不被攻击格子数
- Codeforces Round #322 (Div. 2)