codeforces 150C Smart Cheater 线段树区间合并
来源:互联网 发布:淘宝怎样粘贴 编辑:程序博客网 时间:2024/06/06 02:05
分析:题目意思中是针对每位乘客,可以选取一连续段不收票。问题转化为,m次询问,查找区间[a,b)内最大连续子序列和。
#include<cstdio> #define ll long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 const int N=150002; template<class T> inline void scan_d(T &ret){ char c;ret=0; while((c=getchar())<'0'||c>'9'); while(c>='0'&&c<='9')ret=ret*10+(c-'0'),c=getchar(); } struct node{ ll s,l,r,m; }A[N<<2]; int x[N]; ll max(ll a,ll b){return a>b?a:b;} node pushup(node L,node R){ node F; F.s=L.s+R.s; F.l=max(L.l,L.s+R.l); F.r=max(R.r,L.r+R.s); F.m=max(max(L.m,R.m),L.r+R.l); return F; } void build(int l,int r,int rt){ if(l==r){A[rt].s=A[rt].l=A[rt].r=A[rt].m=x[l];return ;} int m=(l+r)>>1; build(lson); build(rson); A[rt]=pushup(A[rt<<1],A[rt<<1|1]); } node query(int L,int R,int l,int r,int rt){ if(L<=l&&R>=r)return A[rt]; int m=(l+r)>>1; if(R<=m)return query(L,R,lson); if(m<L)return query(L,R,rson); node nl=query(L,m,lson),nr=query(m+1,R,rson); return pushup(nl,nr); } int main(){ int n,m,c,i,a,b,p; while(~scanf("%d%d%d",&n,&m,&c)){ for(i=1;i<=n;i++)scan_d(x[i]),x[i-1]=(x[i]-x[i-1])*50; for(i=1;i<n;i++)scan_d(p),x[i]-=p*c;n--; build(1,n,1); ll ans=0,t; while(m--){ scan_d(a),scan_d(b); t=query(a,b-1,1,n,1).m; if(t>0)ans+=t; } printf("%.8lf\n",ans*0.01); } return 0; }
0 0
- codeforces 150C Smart Cheater 线段树区间合并
- codeforces 150C Smart Cheater
- CodeForces 151E Smart Cheater(线段树)
- CF 150C Smart Cheater
- Codeforces 527C Glass Carving 线段树区间合并
- Codeforces 739C 线段树 区间合并问题
- codeforces 46D 线段树 区间合并
- codeforces 46D 线段树区间合并
- Codeforces 52C (线段树区间更新)
- 线段树 区间合并
- 线段树 区间合并
- 线段树 区间合并
- 线段树 区间合并
- 线段树-区间合并
- CodeForces 46D Parking Lot(线段树区间合并)
- codeforces #337 E. Alphabet Permutations (线段树区间合并)
- CodeForces 46D Parking Lot (线段树区间合并)
- codeforces 46D Parking Lot(线段树 区间合并)
- 架构设计:系统间通信(8)——通信管理与RMI 上篇
- redis中各种数据类型对应的jedis操作命令
- swift与OC之间的不同之处(不完整)
- WinForm 编程中控件的使用小技巧(splitter实现窗口分区域,改变Button的形状)
- C语言基础
- codeforces 150C Smart Cheater 线段树区间合并
- struts2中改变struts.xml默认路径
- yaf的nginx的rewrite
- 更快学习JavaScript的6个思维技巧
- 深拷贝,浅拷贝
- XCode7.0 Objective-C 三大新特性
- struts中接收数组的表单和ajax两种形式
- 卷积神经网络(一):LeNet5的基本结构
- [LeeCode]#22 Generate Parentheses