bzoj3343: 教主的魔法 分块 标记
修改:两边暴力重构,中间打标记。复杂度:O(n0.5)
查询:中间二分两边暴力。O(n0.5logn0.5)
总时间复杂度O(n*n0.5logn0.5)
空间复杂度是n级别的
标记不用下传因为标记不用下传也没时间下传,如果在访问时下传就造成更棘手的不整块,如果累加式下传不好记录,所以就带着就行。
细节很多......
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#define MAXN 1010000
using namespace std;
typedef long long LL;
LL a[MAXN],b[][],mark[],n,pos[MAXN],lon,t;
inline LL Min(LL x,LL y)
{
return x<y?x:y;
}
int comp(const int x,const int y)
{
return x>y;
}
inline void work1()
{
LL l,r,w;
scanf("%lld%lld%lld",&l,&r,&w);
LL z=pos[l]+,y=pos[r]-;
for(LL i=z;i<=y;i++)
mark[i]+=w;
LL zzh=(pos[l]*lon);
zzh=Min(zzh,r);
for(LL i=l;i<=zzh;i++) a[i]+=w;
zzh=pos[l]*lon;
zzh=Min(zzh,n);
memset(b[pos[r]],,sizeof(b[pos[r]]));
for(LL i=zzh-lon+;i<=zzh;i++) b[pos[l]][i%lon+]=a[i];
sort(b[pos[l]]+,b[pos[l]]+lon+);
if(pos[l]!=pos[r])
{
for(LL i=(pos[r]-)*lon+;i<=r;i++) a[i]+=w;
zzh=pos[r]*lon;
zzh=Min(zzh,n);
memset(b[pos[r]],,sizeof(b[pos[r]]));
for(LL i=(pos[r]-)*lon+;i<=zzh;i++) b[pos[r]][i%lon+]=a[i];
sort(b[pos[r]]+,b[pos[r]]+lon+);
}
}
inline LL Count(LL p,LL c)
{
LL ans=,l=,r=lon;
while(l<=r)
{
LL mid=(l+r)>>;
if(b[p][mid]+mark[p]<c)
l=mid+;
else
ans+=(r-mid+),r=mid-;
}
return ans;
}
inline void work2()
{
LL l,r,c,ans=;
scanf("%lld%lld%lld",&l,&r,&c);
LL z=pos[l]+,y=pos[r]-;
for(LL i=z;i<=y;i++)
ans+=Count(i,c);
LL zzh=(pos[l]*lon);
zzh=Min(zzh,r);
for(LL i=l;i<=zzh;i++)
if(a[i]+mark[pos[i]]>=c)
ans++;
if(pos[l]!=pos[r])
{
for(LL i=(pos[r]-)*lon+;i<=r;i++)
if(a[i]+mark[pos[i]]>=c)
ans++;
}
printf("%lld\n",ans);
}
int main()
{
scanf("%lld",&n);
LL Q;
scanf("%lld",&Q);
lon=(LL)sqrt(n+0.5);
for(LL i=;i<=n;i++)
{
scanf("%lld",&a[i]);
pos[i]=(i-)/lon+;
b[pos[i]][i%lon+]=a[i];
}
t=pos[n];
for(int i=;i<=t;i++)
sort(b[i]+,b[i]+lon+);
while(Q--)
{
char s[];
scanf("%s",s);
if(s[]=='M')work1();
else work2();
}
return ;
}
bzoj3343: 教主的魔法 分块 标记的更多相关文章
- BZOJ3343: 教主的魔法 分块
2016-05-28 10:27:19 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3343 比较显然的分块题,分块后块内排序,维护整块的附 ...
- [bzoj3343]教主的魔法——分块
Brief description 给定一个数列,您需要支持一下两种操作: 给[l,r]同加一个数 询问[l,r]中有多少数字大于或等于v Algorithm analyse 这个题一时想不到什么有效 ...
- BZOJ-3343教主的魔法+分块(大块排序二分)
传送门:https://www.luogu.org/problemnew/show/P2801 参考:http://hzwer.com/2784.html 感觉思路无比清晰:) ps:我在洛谷A的, ...
- [BZOJ3343]教主的魔法
[BZOJ3343]教主的魔法 试题描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.… ...
- BZOJ 3343: 教主的魔法(分块+二分查找)
BZOJ 3343: 教主的魔法(分块+二分查找) 3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1172 Solved: ...
- Luogu 2801 教主的魔法 | 分块模板题
Luogu 2801 教主的魔法 | 分块模板题 我犯的错误: 有一处l打成了1,还看不出来-- 缩小块大小De完bug后忘了把块大小改回去就提交--还以为自己一定能A了-- #include < ...
- 【bzoj3343】教主的魔法 分块
[bzoj3343]教主的魔法 2014年4月26日8092 Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了 ...
- 【BZOJ-3343】教主的魔法 分块
3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 950 Solved: 414[Submit][Status][Discuss ...
- 【BZOJ3343】教主的魔法 分块+二分
Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的 ...
随机推荐
- hdcms v5.7.0学习笔记
hdcms v5.7.0学习笔记 https://note.youdao.com/ynoteshare1/index.html?id=c404d63ac910eb15a440452f73d6a6db& ...
- 2.3 进程控制之exec函数族
学习目标:学习使用exec函数族的重要的几个函数 一.引言 进程通过exec函数根据指定的文件名或目录名执行另一个可执行文件,当进程调用exec函数时,该进程的数据段.代码段和堆栈段完全被新程序替换 ...
- PHP json_decode返回null解析失败原因
在PHP5.4之前 json_decode函数有两个参数json_decode有两个参数,第一个是待解析的字符串,第二个是是否解析为Array json_decode要求的字符串比较严格:(1)使用U ...
- hadoop jar x.jar 执行过程
hadoop jar x.jar 执行过程 Yarn框架执行内容 1,job.waitforcompletion() 启动 Runjar 进程 -> Resourcemanage申请一个j ...
- 2.PostgreSQL安装详细步骤(windows)【转】
感谢 Junn9527 PostgreSQL安装:一.windows下安装过程安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下:1.开始安装 ...
- 使用postgresql作为cm的数据库时候添加报错
如下图,当postgresql安装成功,建立好数据库scm,rman,amon之后,添加cm对应服务报错hadoopNode2没有相应数据库: No database server found run ...
- 插件开发遇到的坑------final 型变量,编译过程被优化
android 插件开发遇到的坑 今天遇到一个坑,pdf 插件,调用了主工程的一个静态final 字符串,但是主工程里面已经没有这个字符串了,却没有崩溃. 后来同事说,因为字符串可能已经直接被写死了. ...
- 两个完整的jquery slide多方面滑动效果实例
实例1,需要引用jquery-ui.js <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...
- jenkins安全内容配置策略
有时我们使用HTML Publisher Plugin插件时,在jenkins点开html report,会发现没有带任何的css或js样式,这是因为Jenkins 1.641 / Jenkins 1 ...
- Week2 Teamework from Z.XML - 必应缤纷桌面助手 - 软件分析与用户需求调查
软件分析与用户需求调查(2013) from Z.XML 本次团队作业要求: 通过定性, 定量地分析, 总结和评定某软件是否满足了目标用户的需求,并把分析的过程和结果用博客表达出来. 选题:必应缤纷桌 ...