bzoj2683简单题 cdq分治
2683: 简单题
Time Limit: 50 Sec Memory Limit: 128 MB
Submit: 1803 Solved: 731
[Submit][Status][Discuss]
Description
|
命令 |
参数限制 |
内容 |
|
1 x y A |
1<=x,y<=N,A是正整数 |
将格子x,y里的数字加上A |
|
2 x1 y1 x2 y2 |
1<=x1<= x2<=N 1<=y1<= y2<=N |
输出x1 y1 x2 y2这个矩形内的数字和 |
|
3 |
无 |
终止程序 |
Input
Output
Sample Input
1 2 3 3
2 1 1 3 3
1 2 2 2
2 2 2 3 4
3
Sample Output
5
HINT
cdq分治三维偏序 三维分别是操作序号,横坐标,纵坐标
把一个询问拆成4个,就变成了处理二维前缀和问题
对横坐标排序,操作序号cdq分治,纵坐标用bit处理
#include<bits/stdc++.h>
#define N 200005
using namespace std;
int n,m,t,c[N*],ans[N];
struct query{
int x,y,v,id,op,bl;
bool operator < (const query &b)const{
if(x==b.x&&y==b.y)return id<b.id;
return x==b.x?y<b.y:x<b.x;
}
}q[N<<],a[N<<]; void add(int x,int y,int v){
if(!x||!y)return;
q[++m].x=x;q[m].y=y;q[m].id=m;
q[m].op=;q[m].bl=t;q[m].v=v;
}
void update(int p,int x){
while(p<=n){
c[p]+=x;
p+=p&-p;
}
}
int ask(int x){
int ret=;
while(x){
ret+=c[x];
x-=x&-x;
}
return ret;
} void solve(int l,int r){
if(l==r)return;
int mid=(l+r)>>,p1=l,p2=mid+;
for(int i=l;i<=r;++i){
if(q[i].id<=mid&&q[i].op==)update(q[i].y,q[i].v);
if(q[i].id>mid&&q[i].op==)ans[q[i].bl]+=ask(q[i].y)*q[i].v;
}
for(int i=l;i<=r;++i)
if(q[i].op==&&q[i].id<=mid)update(q[i].y,-q[i].v);
for(int i=l;i<=r;++i){
if(q[i].id<=mid)a[p1++]=q[i];
else a[p2++]=q[i];
}
for(int i=l;i<=r;++i)q[i]=a[i];
solve(l,mid);solve(mid+,r);
}
int main(){
scanf("%d",&n);
while(){
static int op,x1,x2,y1,y2,v;
scanf("%d",&op);
if(op==){
scanf("%d%d%d",&x1,&y1,&v);
q[++m].x=x1;q[m].y=y1;q[m].v=v;
q[m].id=m;q[m].op=op;
}
if(op==){
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);++t;
add(x1-,y1-,);add(x2,y2,);
add(x1-,y2,-);add(x2,y1-,-);
}
if(op==)break;
}
sort(q+,q++m);
solve(,m);
for(int i=;i<=t;i++)
printf("%d\n",ans[i]);
return ;
}
bzoj2683简单题 cdq分治的更多相关文章
- BZOJ2683: 简单题(cdq分治 树状数组)
Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 2142 Solved: 874[Submit][Status][Discuss] Descripti ...
- Bzoj2683 简单题 [CDQ分治]
Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 1071 Solved: 428 Description 你有一个N*N的棋盘,每个格子内有一个整数, ...
- 【BZOJ1176】[Balkan2007]Mokia/【BZOJ2683】简单题 cdq分治
[BZOJ1176][Balkan2007]Mokia Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=1600 ...
- 【bzoj1176】[Balkan2007]Mokia/【bzoj2683】简单题 CDQ分治+树状数组
bzoj1176 题目描述 维护一个W*W的矩阵,初始值均为S(题目描述有误,这里的S没有任何作用!).每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数 ...
- 【BZOJ-1176&2683】Mokia&简单题 CDQ分治
1176: [Balkan2007]Mokia Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 1854 Solved: 821[Submit][St ...
- bzoj 1176: [Balkan2007]Mokia&&2683: 简单题 -- cdq分治
2683: 简单题 Time Limit: 50 Sec Memory Limit: 128 MB Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要 ...
- BZOJ 2683: 简单题 [CDQ分治]
同上题 那你为什么又发一个? 因为我用另一种写法又写了一遍... 不用排序,$CDQ$分治的时候归并排序 快了1000ms... #include <iostream> #include ...
- BZOJ 2683 简单题 cdq分治+树状数组
题意:链接 **方法:**cdq分治+树状数组 解析: 首先对于这道题,看了范围之后.二维的数据结构是显然不能过的.于是我们可能会考虑把一维排序之后还有一位上数据结构什么的,然而cdq分治却可以非常好 ...
- BZOJ 2683: 简单题(CDQ 分治)
题面 Time Limit: 50 Sec Memory Limit: 128 MB Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: ...
随机推荐
- Storm概念讲解和工作原理介绍
Strom的结构 Storm与传统关系型数据库 传统关系型数据库是先存后计算,而storm则是先算后存,甚至不存 传统关系型数据库很难部署实时计算,只能部署定时任务统计分析窗口数据 ...
- Linux 磁盘和文件管理系统 文件打包解压备份 VIM、VI编辑器
- EXT3文件系统误删除导致文件系统中的邮件丢失恢复方法
一.故障描述 由8块盘组成的RAID5, 上层是EXT3文件系统,由于误删除导致文件系统中的邮件丢失 二.镜像磁盘为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用winhex软件为每块磁盘 ...
- hexo博客图片问题
hexo博客图片问题 第一步 首先确认_config.yml 中有 post_asset_folder:true. Hexo 提供了一种更方便管理 Asset 的设定:post_asset_folde ...
- WebApi一个控制器中定义多个Get方法。
问题:怎样解决一个ApiController中定义多个Get方法或者Post方法? 答:要想实现一个ApiController中定义多个Get方法或者Post方法,则需要在WebApiConfig类中 ...
- Oracle银行存取钱系统
Oracle银行存取钱系统 /* 银行系统 要求: 1.创建一个用户信息表(userinfo).一个交易信息表(deal) 2.用户信息表字段:用户编号.用户名称.密码.余额 交易信息表字段:编号.交 ...
- 阿里云CentOS部署小笔记
快毕业了,我用近两周的时间完成了一个nodeJs+Vue-Cli+Mysql的毕业设计,到了部署的时候了. 然而,博主使用Linux的经验有限得很,所以只能自己慢慢地填坑了. 一.准备工作 1)阿里云 ...
- Java.nio-随机读写汉字
笔者最近在用多线程来计算中文文本的标点符号数目,遇到了以下问题: 在Windows下,文本中汉字通常采用Unicode编码,这就导致需要随机(RandomAccessFile)读取文本时,产生乱码现象 ...
- c语言中宏定义和常量定义的区别
他们有共同的好处就是"一改全改,避免输入错误"哪两者有不同之处吗?有的. 主要区别就在于,宏定义是在编译之前进行的,而const是在编译阶段处理的 宏定义不占用内存单元而const ...
- proxymysql的安装与应用
具体的资料我们可以查看官方的文档:https://github.com/sysown/proxysql/wiki/ProxySQL-Configuration 推荐下载最新的Proxysql. 下面跟 ...