【CodeVs 6128 Lence的方块们】
·希望除了内部人员以外能有人通过这道题,因为这是大米饼第一次改编的题
·我所见到的“本题原版”的题解也很少,搜索一下应该是: #include<stdio.h>
#include<algorithm>
#define go(i,a,b) for(int i=a;i<=b;i++)
;
struct Convey{int Lnum,Rnum,Lsum,Rsum;}__;
int n,m,sz,lch[N],rch[N],lsum[N],rsum[N],_;
int sum[N],lazy[N],lnum[N],rnum[N];
void build(int &u,int l,int r){
u=++sz;sum[u]=lsum[u]=rsum[u]=r-l+;if(l==r)return;
;build(lch[u],l,mid);build(rch[u],mid+,r);
}
void Down(int u){
lnum[lch[u]]+=lazy[u];rnum[lch[u]]+=lazy[u];
lnum[rch[u]]+=lazy[u];rnum[rch[u]]+=lazy[u];
lazy[lch[u]]+=lazy[u];lazy[rch[u]]+=lazy[u];lazy[u]=;
}
;
sum[u]=max(sum[lch[u]],sum[rch[u]]);
lnum[u]=lnum[lch[u]];lsum[u]=lsum[lch[u]];
rnum[u]=rnum[rch[u]];rsum[u]=rsum[rch[u]];
)lsum[u]+=lsum[rch[u]];
)rsum[u]+=rsum[lch[u]];
if(lnum[rch[u]]==rnum[lch[u]])sum[u]=max(sum[u],rsum[lch[u]]+lsum[rch[u]]);
}
void update(int u,int l,int r,int L,int R,int val){
if(l==L&&r==R){lnum[u]+=val;rnum[u]+=val;lazy[u]+=val;return;}
;
if(R<=mid)update(lch[u],l,mid,L,R,val);
,r,L,R,val);
else update(lch[u],l,mid,L,mid,val),
update(rch[u],mid+,r,mid+,R,val);Up(u,l,r);
}
int find(int u,int l,int r,int L,int R,Convey& car){
if(l==L&&r==R){car=(Convey){lnum[u],rnum[u],lsum[u],rsum[u]};return sum[u];}
;
if(R<=mid)return find(lch[u],l,mid,L,R,car);
,r,L,R,car);
else{Convey A,B;int ans;
ans=max(find(lch[u],l,mid,L,mid,A),find(rch[u],mid+,r,mid+,R,B));
car.Lnum=A.Lnum;car.Rnum=B.Rnum;car.Lsum=A.Lsum;car.Rsum=B.Rsum;
)car.Lsum+=B.Lsum;
)car.Rsum+=A.Rsum;
if(A.Rnum==B.Lnum)ans=max(ans,A.Rsum+B.Lsum);return ans;
}Up(u,l,r);
}
,n);
go(i,,m){int f,l,r,a,k,p;scanf("%d",&f);
if(!f){scanf("%d%d%d%d%d",&l,&r,&a,&k,&p);
>=l)update(,,n,l,p-,k);
<=r)update(,,n,p,r-,-k);
)update(,,n,l-,l-,a);
,,n,r,r,-(*p-l-r)*k-a);
}
+find(,,n,l,r-,__));
};}//Paul_Guderian
当黎明和落日的光影交错的时刻,我们纷纷逃出每一座尖叫的城市。———汪峰《信仰在空中飘扬》
【CodeVs 6128 Lence的方块们】的更多相关文章
- ●线段树题之wows
●模拟考试的一道似乎是学长出的题,还不错,挺考代码能力的.以此记录. ●题目以被上传(改了改说法),6128 Lence的方块们 ● (像手纸一样长的贴图……) ●题目大意: 有横向排布的n个点,每个 ...
- 2016. 4.10 NOI codevs 动态规划练习
1.codevs1040 统计单词个数 1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 De ...
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1228 苹果树 树链剖分讲解
题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
随机推荐
- python网络爬虫,知识储备,简单爬虫的必知必会,【核心】
知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌 ...
- java连接jdbc Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by defa
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db","root",& ...
- RocketMQ(五):namesrv初探
匠心零度 转载请注明原创出处,谢谢! RocketMQ网络部署图 NameServer:在系统中是做命名服务,更新和发现 broker服务. Broker-Master:broker 消息主机服务器. ...
- 译《Time, Clocks, and the Ordering of Events in a Distributed System》
Motivation <Time, Clocks, and the Ordering of Events in a Distributed System>大概是在分布式领域被引用的最多的一 ...
- kafka---broker 保存消息
1 .存储方式 物理上把 topic 分成一个或多个 patition(对应 server.properties 中的 num.partitions=3 配置),每个 patition 物理上对应一个 ...
- windbg分析Kernel32.dll导出表
写在前面的话: 继续上篇,在获得了Kernel32.dll基址的基础上,分析它的导出表结构: 对PE结构不太熟悉的同学,可以参考看雪论坛里的一篇帖子:https://bbs.pediy.com/thr ...
- Mysql官方文档翻译系列-7.3.1 Establishing a Backup Policy
原文链接 (https://dev.mysql.com/doc/refman/5.7/en/backup-policy.html) 正文 To be useful, backups must be s ...
- 对于错误“Refused to execute script from '...' because its MIME type ('') is not executable, and strict MIME type checking is enabled.”的处理。
今天在是用公司的报表插件Stimulsoft时发现的问题.之前可以正常使用,突然不能加载了.查看发现得到这个错误. 查看请求头 可以看到,请求正常响应,但是发现 Content-Type是空的,但是引 ...
- SpringBoot(一):使用eclipse/idea创建springboot helloword工程
eclipse如何创建spring boot工程: 第一步:首先打开eclipse,找到图中的下图的中“下三角”符号,选中"working sets"(表示将会把eclipse中的 ...
- 1.7 理解dropout
Dropout为什么有正则化的作用? 下面来直观理解一下. 上面讲到,dropout每次迭代都会让一部分神经元失活,这样使得神经网络会比原始的神经网络规模变小,因此采用一个较小神经网络好像和使用正则化 ...