仍然是一道cdq模版。。

那么对于一个询问,容斥一下分成四个,变成问(1,1)~(x,y),那么对于x,y,修改只有x'<=x&&y'<=y,才对询问有影响,那么加上读入顺序,就是一个三维偏序了。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std; struct node
{
int tp,x,y,v,be;//第一维时间已经有序
//tp=0 表示修改 v为修改的值
//tp=-1、1询问 v为所求值
}a[];int len;
void ins(int tp,int x,int y,int v,int be)
{
len++;
a[len].tp=tp;
a[len].x=x;a[len].y=y;
a[len].v=v;a[len].be=be;
} //---------------------------------- int n,s[];
int lowbit(int x){return x&-x;}
void add(int x,int k)
{
while(x<=n)
{
s[x]+=k;
x+=lowbit(x);
}
}
int getsum(int x)
{
int ans=;
while(x>=)
{
ans+=s[x];
x-=lowbit(x);
}
return ans;
} //---------------树状数组----------------- node t[];
void cdq(int l,int r)
{
if(l==r)return ;
int mid=(l+r)/;
cdq(l,mid);
cdq(mid+,r); int i=l,j=mid+,p=l;
while(i<=mid&&j<=r)
{
if(a[i].x<=a[j].x)
{
if(a[i].tp==)add(a[i].y,a[i].v);
t[p++]=a[i++];
}
else
{
if(a[j].tp!=)a[j].v+=getsum(a[j].y);
t[p++]=a[j++];
}
}
while(i<=mid)
{
if(a[i].tp==)add(a[i].y,a[i].v);
t[p++]=a[i++];
}
while(j<=r)
{
if(a[j].tp!=)a[j].v+=getsum(a[j].y);
t[p++]=a[j++];
} for(int i=l;i<=mid;i++)
if(a[i].tp==)add(a[i].y,-a[i].v); for(int i=l;i<=r;i++)a[i]=t[i];
} //-------------------cdq------------------------ int ans[],ansl;
int main()
{
int S;
scanf("%d%d",&S,&n); int op,x1,y1,x2,y2,v;len=;
while(scanf("%d",&op)!=EOF)
{
if(op==)break; if(op==)
{
scanf("%d%d%d",&x1,&y1,&v);
ins(,x1,y1,v,);
}
else
{
ansl++;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if(x1->&&y1->)ins(,x1-,y1-,,ansl);
if(x1->)ins(-,x1-,y2,,ansl);
if(y1->)ins(-,x2,y1-,,ansl);
ins(,x2,y2,,ansl);
}
} cdq(,len); memset(ans,,sizeof(ans));
for(int i=;i<=len;i++)
if(a[i].tp!=)ans[a[i].be]+=a[i].v*a[i].tp; for(int i=;i<=ansl;i++)printf("%d\n",ans[i]);
return ;
}

bzoj2683(要改一点代码)&&bzoj1176: [Balkan2007]Mokia的更多相关文章

  1. [BZOJ1176][Balkan2007]Mokia cdq+树状数组

    1176: [Balkan2007]Mokia Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 3134  Solved: 1395[Submit][S ...

  2. 2018.09.16 bzoj1176: [Balkan2007]Mokia(cdq分治)

    传送门 调了半天发现是输出优化打错了求心理阴影体积233 这题很简单啊. 一个修改操作x如果对一个询问操作y有贡献那么有. tx<ty,Xx<=Xy,Yx<=Yy" rol ...

  3. bzoj1176: [Balkan2007]Mokia cdq

    链接 bzoj 思路 cdq入门题,拆成4个矩阵,然后cdq. 代码 /************************************************************** P ...

  4. Bzoj1176 [Balkan2007]Mokia

    Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 2000  Solved: 890 Description 维护一个W*W的矩阵,初始值均为S.每次操作 ...

  5. BZOJ1176: [Balkan2007]Mokia CDQ分治

    最近很不对啊=w= 写程序全是bug啊 ans数组开小了竟然一直不知道,小数据没问题大数据拍不过,交上去RE 蛋疼半天 这个主要把每次询问拆成3个询问. #include<cstdio> ...

  6. bzoj1176: [Balkan2007]Mokia【cdq分治】

    把询问搞成4个,cdq分治. #include <bits/stdc++.h> #define rep(i, a, b) for (int i = a;i <= b; i++) #d ...

  7. bzoj千题计划144:bzoj1176: [Balkan2007]Mokia

    http://www.lydsy.com/JudgeOnline/problem.php?id=1176 CDQ分治 #include<cstdio> #include<iostre ...

  8. 【kd-tree】bzoj1176 [Balkan2007]Mokia

    裸题不多说,注意在sqrt(n*log(n))次插入后重构树以保持深度. #include<cstdio> #include<cmath> #include<algori ...

  9. BZOJ1176 [Balkan2007]Mokia 【CDQ分治】

    题目 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. 输入格式 ...

随机推荐

  1. [图文教程] 使用Git 提交项目到码云

    目录 1. 环境准备 2. 开发工具配置Git和SSH 3. 配置SSH到码云 4. 创建一个项目 5. Clone项目到本地 6. Push项目到码云 1. 环境准备 1.1 本机配置Git Hom ...

  2. springmvc ajax传值详解

  3. The 16th Zhejiang University Programming Contest-

    Handshakes Time Limit: 2 Seconds      Memory Limit: 65536 KB Last week, n students participated in t ...

  4. 一段曲折的copy路程

    cp 的时候出现:-bash: /bin/cp: Argument list too longcp ./*.swf  /www/img/html/xxx/action/ 解决办法:find ./ -n ...

  5. BUPT2017 springtraining(16) #1 题解

    https://vjudge.net/contest/162590 A: 不难发现,当L=R时输出L,当L<R时输出2. B: 贪心得配对.1和n配 2和n-1配,对与对直接只要花1个代价就可以 ...

  6. PAT (Advanced Level) 1039. Course List for Student (25)

    map会超时,二分吧... #include<iostream> #include<cstring> #include<cmath> #include<alg ...

  7. Spring Cloud(9):Config配置中心

    Config配置中心作用简单来讲:统一配置,方便管理 开源配置中心: 1.百度Disconf 2.阿里Diamand 3.Spring Cloud Config 搭建Config-Server 快速上 ...

  8. 30分钟学会如何使用Shiro(转)

    本文转自http://www.cnblogs.com/learnhow/p/5694876.html 感谢作者 本篇内容大多总结自张开涛的<跟我学Shiro>原文地址:http://jin ...

  9. HDU 5280 Senior&#39;s Array

    Senior's Array Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) T ...

  10. Meteor Assets资源

    静态服务器资源位于应用程序内的 private 子文件夹.在这个例子中,我们将学习如何从简单的JSON文件中使用数据. 第1步 - 创建文件和文件夹 让我们创建一个 private 文件夹并在这个文件 ...