bzoj2453
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2453
题目大意:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define maxn 1000001
using namespace std;
int add[maxn],a[maxn],b[maxn],pos[maxn];
char ch[];
int n,m,blo,num;
int read()
{
int x=; char ch; bool bo=;
while (ch=getchar(),ch<''||ch>'') if (ch=='-') bo=;
while (x=x*+ch-'',ch=getchar(),ch>=''&&ch<='');
if (bo) return -x; return x;
}
void resort(int x)
{
int l=(x-)*blo+,r=min(x*blo,n);
for (int i=l; i<=r; i++)
b[i]=a[i];
sort(b+l,b+r+);
}
int find(int x,int v)
{
int l=(x-)*blo+,r=min(x*blo,n);
int last=r;
while (l<=r)
{
int mid=(l+r)>>;
if (b[mid]<v) l=mid+;
else r=mid-;
}
return last-l+;
}
int query(int x,int y,int v)
{
int sum=;
if (pos[x]==pos[y])
{
for (int i=x; i<=y; i++)
if (a[i]+add[pos[i]]>=v) sum++;
}
else
{
for(int i=x;i<=pos[x]*blo;i++)
if(a[i]+add[pos[i]]>=v)sum++;
for(int i=(pos[y]-)*blo+;i<=y;i++)
if(a[i]+add[pos[i]]>=v)sum++;
}
for (int i=pos[x]+; i<pos[y]; i++)
sum+=find(i,v-add[i]);
return sum;
}
void ins(int x,int y,int v)
{
if (pos[x]==pos[y])
{
for (int i=x; i<=y; i++) a[i]+=v;
}
else
{
for (int i=x; i<=blo*pos[x]; i++) a[i]+=v;
for (int i=(pos[y]-)*blo+; i<=y; i++) a[i]+=v;
}
resort(pos[x]); resort(pos[y]);
for (int i=pos[x]+; i<pos[y]; i++)
add[i]+=v;
}
int main()
{
n=read(); m=read();
blo=int(sqrt(n));
for (int i=; i<=n; i++) a[i]=b[i]=read(),pos[i]=(i-)/blo+;
num=(n-)/blo+;
for (int i=; i<=num; i++) resort(i);
for (int i=; i<=m; i++)
{
scanf("%s",ch+); int x=read(),y=read(),z=read();
if (ch[]=='M') ins(x,y,z);
else printf("%d\n",query(x,y,z));
}
}
bzoj2453的更多相关文章
- BZOJ2453维护队列&&BZOJ2120数颜色
2016-05-28 11:20:22 共同的思路: 维护某种颜色上一次在哪里出现pre,可以知道当pre<询问的l时更新答案 块内按照pre排序 修改的时候重新O(n)扫一遍,如果和之前的不一 ...
- 【BZOJ2453】维护队列/【BZOJ2120】数颜色 分块
[BZOJ2453]维护队列 Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色 ...
- [BZOJ2453]维护队列|分块
Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少.当然,A有时候会 ...
- [bzoj2453]维护队列_带修改莫队
维护队列 bzoj-2453 题目大意:给定一个n个数序列,支持查询区间数的种类数,单点修改.不强制在线. 注释:$1\le n,m\le 10^5$. 想法: 带修改莫队裸题. 如果没有修改操作的话 ...
- 【BZOJ-2453&2120】维护队列&数颜色 分块 + 带修莫队算法
2453: 维护队列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 653 Solved: 283[Submit][Status][Discuss] ...
- BZOJ2453: 维护队列
2453: 维护队列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 183 Solved: 89[Submit][Status] Descripti ...
- bzoj2120: 数颜色 &&bzoj2453: 维护队列
题目大意: 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少.当然,A有时候会依据个人喜好 ...
- BZOJ2453:维护队列——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2453 Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到 ...
- 【bzoj2453】维护队列/【bzoj2120】数颜色 分块+二分
题目描述 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N.为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少.当然,A有时候会依据个人喜好, ...
随机推荐
- seo步骤
1. 关键词.找trends主词.去渣渣.(扩展).(去重tool sort) .打乱 :https://adwords.google.com/https://www.google.com/trend ...
- 动态规划1-----------poj1080
#include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> us ...
- (一)、Struts第一天
(一).Struts第一天 1. JavaWeb知识回顾 n 客户端编程 HTLM/CSS/JS n XML技术 会写XML * 基本语法 * DTD * Schema 会读XML * Dom4J读取 ...
- 关于127.0.0.1与localhost
127.0.0.1是不会经过防火墙的,而localhost是要通过防火墙取地址的.
- docker安装hadoop
docker为hadoop的云化带来了极大便利,安装和应用也会更快更方便.进入正题: docker search hadoop 将会看到如下结果: INDEX NAME DESCRIPTION STA ...
- Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'yintingting_baisi/Info.plist'.
处理方法: The INFOPLIST_FILE build setting specifies the name of the Info.plist associated with your tar ...
- WordPress常用插件
1.Remove Open Sans font Link from WP core 由于Wordpress后台外链加载了谷歌字体(代码位置在wordpress\wp-includes\script-l ...
- 深入Java单例模式(转)
深入Java单例模式 源自 http://devbean.blog.51cto.com/448512/203501 在GoF的23种设计模式中,单例模式是比较简单的一种.然而,有时候越是简单的东西越容 ...
- HDU 1114 Piggy-Bank(判断是否恰好装满的背包)
其实这道题在寒假自学训练赛的时候就做过,不过感觉现在的理解跟当时真的不一样,大一半年过去了,变了这么多,我们都在进步,一回头便走出了这么远... 好了,题目很简单,一个背包,装不满做一个标记就行了 # ...
- Python大神成长之路: 第一次学习记录
一.Python发展史 二.Python2 or 3 博主选择了Python3. 从官网下载Python www.python.org Windows安装python3.5.python2.7.安装 ...