Bzoj 3343: 教主的魔法 分块,二分
3343: 教主的魔法
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 821 Solved: 364
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 3 4 5
A 1 5 4
M 3 5 1
A 1 5 4
Sample Output
3
HINT
Source
#include<bits/stdc++.h>
using namespace std;
#define MAXN 1000010
int N,a[MAXN],h[MAXN],pos[MAXN],add[],block;
int read()
{
int s=,fh=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')fh=-;ch=getchar();}
while(ch>=''&&ch<=''){s=s*+(ch-'');ch=getchar();}
return s*fh;
}
void cl(int k)
{
int l=(k-)*block+,r=min(k*block,N),i;
for(i=l;i<=r;i++)a[i]=h[i];
sort(a+l,a+r+);
}
void Add(int l,int r,int c)
{
int i;
if(pos[l]==pos[r])
{
for(i=l;i<=r;i++)h[i]+=c;
cl(pos[l]);
}
else
{
for(i=l;i<=pos[l]*block;i++)h[i]+=c;
for(i=(pos[r]-)*block+;i<=r;i++)h[i]+=c;
for(i=pos[l]+;i<=pos[r]-;i++)add[i]+=c;
cl(pos[l]);cl(pos[r]);
}
}
int Find(int k,int c)
{
int l=(k-)*block+,r=min(k*block,N),t=,mid;
while(l<=r)
{
mid=(l+r)/;
if(a[mid]<c)l=mid+;
else t=mid,r=mid-;
}
if(t==)return ;
return min(k*block,N)-t+;
}
int Query(int l,int r,int c)
{
int ans=,i;
if(pos[l]==pos[r])
{
for(i=l;i<=r;i++)if(h[i]+add[pos[i]]>=c)ans++;
}
else
{
for(i=l;i<=pos[l]*block;i++)if(h[i]+add[pos[i]]>=c)ans++;
for(i=(pos[r]-)*block+;i<=r;i++)if(h[i]+add[pos[i]]>=c)ans++;
for(i=pos[l]+;i<=pos[r]-;i++)ans+=Find(i,c-add[i]);
}
return ans;
}
int main()
{
int Q,i,m,L,R,W;
char fh[];
N=read();Q=read();
block=(int)sqrt(N);
for(i=;i<=N;i++)
{
h[i]=read();
pos[i]=(i-)/block+;
}
if(N==block*block)m=block;
else m=block+;
for(i=;i<=m;i++)cl(i);
for(i=;i<=Q;i++)
{
scanf("\n%s",fh);L=read();R=read();W=read();
if(fh[]=='M')Add(L,R,W);
else printf("%d\n",Query(L,R,W));
}
return ;
}
Bzoj 3343: 教主的魔法 分块,二分的更多相关文章
- BZOJ 3343: 教主的魔法(分块+二分查找)
BZOJ 3343: 教主的魔法(分块+二分查找) 3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1172 Solved: ...
- Bzoj 3343: 教主的魔法(分块+二分答案)
3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MB Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息 ...
- BZOJ 3343: 教主的魔法 [分块]【学习笔记】
3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1172 Solved: 526[Submit][Status][Discus ...
- bzoj 3343 教主的魔法 分块
修改直接对整块打标记,两边暴力. 查询需要保证每个整块有序,所以在修改时排序就好啦 #include<cstdio> #include<cstring> #include< ...
- 【BZOJ3343】教主的魔法 分块+二分
Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的 ...
- bzoj 3343: 教主的魔法
Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 924 Solved: 402[Submit][Status][Discuss] Descriptio ...
- BZOJ——3343: 教主的魔法 || 洛谷—— P2801 教主的魔法
http://www.lydsy.com/JudgeOnline/problem.php?id=3343 || https://www.luogu.org/problem/show?pid=280 ...
- BZOJ 3343教主的魔法
Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的 ...
- BZOJ 3343 教主的魔法(分块)
题意: 有一个1e6的数组,t次操作:将[l,r]内的值增加w,或者查询[l,r]内的值大于等于add的 思路: 分块,块大小为sqrt(n),每次只需要暴力头尾两块,中间的整块打标记, 对于查询查操 ...
随机推荐
- python 自动化之路 day 08_2 网络编程
本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...
- placeholder属性兼容js支持
$(function(){ //判断浏览器是否支持placeholder属性 supportPlaceholder='placeholder'in document.createElement('in ...
- html中th 与thead tbody的 使用
上午工作的时候,遇到一挺纠结的问题,在<th width...> width根本不起作用. 后来才明白<th>标签不能写在<tbody>里,不符合语法. 所以顺便总 ...
- Python全栈开发之MySQL(三)视图,存储过程触发器,函数,事务,索引
一:视图 1:什么是视图? 视图是指存储在数据库中的查询的SQL语句,具有简单.安全.逻辑数据独立性的作用及视点集中简化操作定制数据安全性的优点.视图包含一系列带有名称的列和行数据.但是,视图并不在数 ...
- Presto: 可以处理PB级别数据的分布式SQL查询引擎
2012年秋季Facebook启动了Presto,Presto的目的是在几百PB级别数据量上面进行准实时分析.在摒弃了一些外部项目以后,Facebook准备开发他们自己的分布式查询引擎.Presto的 ...
- WPF DataGrid 自动生成行号的方法(通过修改RowHeaderTemplate的方式)
WPF中的DataGrid自动生成行号的方法有很多,这里记录了一种通过修改 RowHeaderTemplate的方式来生成行号: 方法一: xaml界面: <Window ... xmlns:l ...
- [转]EJS入门
今天学习了EJS,转个再点个赞,动态创网页的好方法! 主页:http://www.embeddedjs.com/ 转自:http://www.csser.com/board/4fddc4f0b28ed ...
- ECMall注册机制简要分析
ecmall的注册流程index.php?app=member&act=register. 首先app是member,act是register方法. index.php中.通过ecmall的s ...
- 【UVA 10369】 Arctic Network (最小生成树)
[题意] 南极有n个科研站, 要把这些站用卫星或者无线电连接起来,使得任意两个都能直接或者间接相连.任意两个都有安装卫星设备的,都可以直接通过卫星通信,不管它们距离有多远. 而安装有无线电设备的两个站 ...
- 杂烩:QWidget、QGraphics、QtQuick
一说起Qt 大都会想起Qt的GUI编程,具体到某个类的话,最多的就是QWidget类及其子类了. 其实Qt中还有基于项的图形视图,具体来说QGraphicsView,QGraphicsScene,QG ...