栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3381 Osaisen Choudai!

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3381 Osaisen Choudai!

#include<iostream>#include<string>#include<cstdio>#include<algorithm>#include<string.h>#include<cmath>using namespace std;const int N=100001;struct A{int s,x,y;};A d[N];struct T{int l,r,f,m;};T seg[6*N];void build(int l,int r,int rt=1){seg[rt].l=l;seg[rt].r=r;seg[rt].f=seg[rt].m=0;if(l==r)return;int m=(l+r)>>1;build(l,m,rt<<1);build(m+1,r,rt<<1|1);}int Max(int a,int b){return a>b?a:b;}void update(int l,int r,int f,int rt=1){if(l<=seg[rt].l&&seg[rt].r<=r){seg[rt].f=Max(f,seg[rt].f);seg[rt].m=Max(f,seg[rt].m);return;}if(seg[rt].f){seg[rt<<1].f=Max(seg[rt].f,seg[rt<<1].f);seg[rt<<1].m=Max(seg[rt<<1].f,seg[rt<<1].m);seg[rt<<1|1].f=Max(seg[rt].f,seg[rt<<1|1].f);seg[rt<<1|1].m=Max(seg[rt<<1|1].f,seg[rt<<1|1].m);seg[rt].f=0;}int m=(seg[rt].l+seg[rt].r)>>1;if(r<=m)update(l,r,f,rt<<1);else if(l>m)update(l,r,f,rt<<1|1);else{update(l,m,f,rt<<1);update(m+1,r,f,rt<<1|1);}seg[rt].m=Max(seg[rt<<1].m,seg[rt<<1|1].m);}int query(int pos,int rt=1){if(seg[rt].l==seg[rt].r){return seg[rt].m;}if(seg[rt].f){seg[rt<<1].f=Max(seg[rt].f,seg[rt<<1].f);seg[rt<<1].m=Max(seg[rt<<1].f,seg[rt<<1].m);seg[rt<<1|1].f=Max(seg[rt].f,seg[rt<<1|1].f);seg[rt<<1|1].m=Max(seg[rt<<1|1].f,seg[rt<<1|1].m);seg[rt].f=0;}int m=(seg[rt].l+seg[rt].r)>>1;if(pos<=m)return query(pos,rt<<1);else return query(pos,rt<<1|1);}int main(){int n;while(cin>>n){int i;for(i=1;i<=n;i++){cin>>d[i].s>>d[i].x>>d[i].y;d[i].x+=i;d[i].y+=i-1;if(d[i].x>n)d[i].x=n+1;if(d[i].y>n)d[i].y=n+1;}build(1,n+10);int c=0;for(i=1;i<=n;i++){int m=query(i);if(m!=0||i==1){update(d[i].x,d[i].y,d[i].s+m);}}cout<<seg[1].m<<endl;}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377625.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号