【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是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
随机推荐
- verilog学习笔记(1)_两个小module
第一个小module-ex_module module ex_module( input wire sclk,//声明模块的时候input变量一定是wire变量 input wire rst_n,// ...
- Flask-uploads 简单使用
pip install flask-uploads#先导入次此处需要用到的库: from flask_uploads import UploadSet, IMAGES, configure_uploa ...
- Scala Option类型
转载自: Scala 初学者指南, 这里有一系列很棒的文章 类型 Option 可能你已经见过它在 Map API 中的使用:在实现自己的提取器时,我们也用过它, 然而,它还需要更多的解释. 你可能会 ...
- Linux环境下发布.net core
一.安装Linux环境 1. 安装VM虚拟机和操作系统 VM虚拟工具安装的过程详见:http://blog.csdn.net/stpeace/article/details/78598333.直接按照 ...
- python使用tesseract-ocr完成验证码识别(模型训练和使用部分)
一.Tesseract训练 大体流程为:安装jTessBoxEditor -> 获取样本文件 -> Merge样本文件 –> 生成BOX文件 -> 定义字符配置文件 -> ...
- python性能分析--cProfile
Python标准库中提供了三种用来分析程序性能的模块,分别是cProfile, profile和hotshot,另外还有一个辅助模块stats.这些模块提供了对Python程序的确定性分析功能,同时也 ...
- Python3 re模块(正则表达式)
一:什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. (在Python中)它内嵌在Python中,并通过r ...
- SpringCloud的DataRest(一)
一.概念与定义 Spring Data Rest 基于Spring Data的repository,可以把 repository 自动输出为REST资源, 这样做的好处: 可以免去大量的 contro ...
- ssh整合之四单独搭建struts的运行环境
1.导入struts的基本jar包 2.在web.xml中配置我们struts的核心控制器StrutsPrepareAndExecuteFilter <?xml version="1. ...
- HTTP首部扫盲
[TOC] 之前在做web开发时使用到HTTP首部的时候遇到不熟悉的都是现用现查,时间一长印象就不深刻了.最近在重读<图解HTTP>,其中有一章是专门讲解HTTP首部的,讲解的HTTP首部 ...