【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是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
随机推荐
- ASP.NET MVC编程——单元测试
1自动化测试基本概念 自动化测试分为:单元测试,集成测试,验收测试. 单元测试 检验被测单元的功能,被测单元一般为低级别的组件,如一个类或类方法. 单元测试要满足四个条件:自治的,可重复的,独立的,快 ...
- Java中Math类的常用方法
public class MathDemo { public static void main(String args[]){ /** * abs求绝对值 */ System.out.println( ...
- EasyUI Datagrid 分页的情况下实现点击表头的小三角图标对数据库中所有数据重新排序
说明一下: 当点击 datagrid 表头某一列的小三角图标时,easyui 本身是有排序的,但是在当我们对 datagrid 进行了分页的情况下,点击排序只是对当前页的数据进行排序,而需求需要我对数 ...
- Python-Cpython解释器支持的进程与线程-Day9
Cpython解释器支持的进程与线程 阅读目录 一 python并发编程之多进程 1.1 multiprocessing模块介绍 1.2 Process类的介绍 1.3 Process类的使用 1.4 ...
- JDBC学习笔记 day1
JDBC的基本概念: JDBC就是java database connectivity,即java数据库连接. JDBC主要完成的几个任务分别为 与数据库建立一个连接 向数据库发送SQL语句 处理数据 ...
- 记录项目中用的laypage分页代码
最终才觉得,好记性不如烂笔头,毕竟已经不是刚毕业时候的巅峰了,精力有所下降,很多时候记不住东西. 参考url:http://www.layui.com/laypage/ 直接上代码了 <scri ...
- Orm之中介模型
什么是中介模型 中介模型针对的是ManyToMany(多对多)的时候第三张表的问题, 中介模型其实指的就是我们不通过Django创建第三张表,如果自己不创建第三张表,而是由django给我们创建,那就 ...
- 【转】Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存哦,下面整理了一些关于urllib使用中的 ...
- JS事件练习题
1.点击按钮连续弹窗5次 <div class="noe"> <div class="noe1" onClick="n()" ...
- Spring-cloud(二)注册服务提供者搭建
上文已经写了如何去搭建注册中心,仅有注册中心是远远不够的,所以我们需要注册到注册中心并提供服务的节点,这里称为注册服务提供者 前提 阅读上文,并成功搭建注册中心,环境无需改变 项目搭建 这里我们需要新 ...