bzoj 3343: 教主的魔法
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 924 Solved: 402
[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
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
typedef long long LL;
const int maxn=;
int N,Q,M,block;
int a[maxn],b[maxn],pos[maxn],add[maxn];
char s[];
inline void reset(int x){
int l=(x-)*block+,r=min(N,x*block);
for(int i=l;i<=r;i++) b[i]=a[i];
sort(b+l,b+r+);
}
inline void update(int l,int r,int delta){
if(pos[l]==pos[r]){
for(int i=l;i<=r;i++) a[i]+=delta;
}
else{
for(int i=l;i<=pos[l]*block;i++) a[i]+=delta;
for(int i=(pos[r]-)*block+;i<=r;i++) a[i]+=delta;
}
reset(pos[l]); reset(pos[r]);
for(int i=pos[l]+;i<=pos[r]-;i++) add[i]+=delta;
}
inline int find(int l,int r,int v){
if(l+>=r){
if(b[l]>=v) return l;
else return r;
}
int mid=(l+r)>>;
if(b[mid]>=v) return find(l,mid,v);
else return find(mid+,r,v);
}
inline int query(int l,int r,int z){
int sum=;
if(pos[l]==pos[r]){
for(int i=l;i<=r;i++)
if(a[i]+add[pos[i]]>=z) sum++;
}
else{
for(int i=l;i<=pos[l]*block;i++)
if(a[i]+add[pos[i]]>=z) sum++;
for(int i=(pos[r]-)*block+;i<=r;i++)
if(a[i]+add[pos[i]]>=z) sum++;
}
for(int i=pos[l]+;i<=pos[r]-;i++){
sum+=(i*block+)-find((i-)*block+,i*block+,z-add[i]);
}
return sum;
}
int main(){
scanf("%d%d",&N,&Q);
block=int(sqrt(N));
for(int i=;i<=N;i++){
scanf("%d",&a[i]); b[i]=a[i];
pos[i]=(i-)/block+;
}
if(N%block!=) M=N/block+;
else M=N/block;
for(int i=;i<=M;i++) reset(i);
while(Q--){
int x,y,z;
scanf("%s%d%d%d",s,&x,&y,&z);
if(s[]=='M') update(x,y,z);
else printf("%d\n",query(x,y,z));
}
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 MBSubmit: 1172 Solved: 526[Submit][Status][Discus ...
- Bzoj 3343: 教主的魔法 分块,二分
3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 821 Solved: 364[Submit][Status][Discuss ...
- Bzoj 3343: 教主的魔法(分块+二分答案)
3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MB Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息 ...
- 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 教主的魔法 分块
修改直接对整块打标记,两边暴力. 查询需要保证每个整块有序,所以在修改时排序就好啦 #include<cstdio> #include<cstring> #include< ...
- [bzoj] 3343 教主的魔法 || 带修改分块
原题 长度为n的序列,有两种操作: 1.[l,r]区间每个数+w 2.询问[l,r]区间有多少个数>c 记录lazy数组即可. #include<cstdio> #include&l ...
- 块状链表 bzoj 3343教主的魔法
//块状链表//分块排序,然后每次查找时在暴力查找头和尾两个块.//中间那些块,因为有序所以只需2分查找即可.我用的是lower_pound();//插入是,也是头和尾暴力插入,中间那些加到一个累计里 ...
随机推荐
- Circular reference 循环引用 第二联系人
A circular reference is a series of references where the last object references the first, resulting ...
- Master Boot Record
https://en.wikipedia.org/wiki/Master_boot_record https://zh.wikipedia.org/wiki/主引导记录 A master boot r ...
- C# 多线程 详解
[基础篇] 怎样创建一个线程 受托管的线程与Windows线程 前台线程与后台线程 名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联 [WinForm多线程编程篇] 多线程 ...
- 如何bitbucket上删除项目
老外网页操作习惯不同,删除项目的按钮,我花了半天,突然瞟到delete,如下图(真他妈的隐蔽,记住这2017/3/7):
- sqlserver 索引的结构及其存储,索引内容
sqlserver 索引的结构及其存储,sql server索引内容 文章转载,原文地址: http://www.cnblogs.com/panchunting/p/SQLServer_IndexSt ...
- sql server 基本问题解决思路
1.数据库故障排查步骤,如何处理紧急数据库问题;首先根据报错信息找到故障原因.然后实施对应的解决方案.2.SQL调优步骤,如何来判断SQL语句存在问题,怎么定位问题,如何解决这些问题:可以建立一个Pe ...
- 什么是 Delta 文件
什么是 Delta 文件 Delta 文件应用很广泛,特别是在数据库领域 What Is a Delta File? During most computer operations, copying, ...
- 20170809直接访问功能测试Postman
20170809直接访问功能测试Postman 1 打开admin账户登录界面,打开F12,登录 admin账户,点击系统管理,用户设置,获得网址http://10.200.44.69:8080/cl ...
- libsvm使用
先挖个坑,有空重写svm_scale, svm_train, svm_predict几个代码,给的实在写的不敢恭维 package org.ml.svm; import java.io.File; i ...
- 怎么申请 bing api key
1:打开网址 https://login.live.com/ 注册帐号并登录(点击上图中的登录按钮即可),在新窗口点击下方的“立即注册”(有帐号的可以直接登录) 2:填写相关信息(推荐使用hotmai ...