Description
在这个“打鼹鼠”的游戏中,鼹鼠会不时地从洞中钻出来,不过不会从洞口钻进去(鼹鼠真胆大……)。洞口都在一个大小为n(n<=1024)的正方形中。这个正方形在一个平面直角坐标系中,左下角为(0,0),右上角为(n-1,n-1)。洞口所在的位置都是整点,就是横纵坐标都为整数的点。而SuperBrother也不时地会想知道某一个范围的鼹鼠总数。这就是你的任务。

Input
每个输入文件有多行。
第一行,一个数n,表示鼹鼠的范围。
以后每一行开头都有一个数m,表示不同的操作:
m=1,那么后面跟着3个数x,y,k(0<=x,y<n),表示在点(x,y)处新出现了k只鼹鼠;
m=2,那么后面跟着4个数x1,y1,x2,y2(0<=x1<=x2<n,0<=y1<=y2<n),表示询问矩形(x1,y1)-(x2,y2)内的鼹鼠数量;
m=3,表示老师来了,不能玩了。保证这个数会在输入的最后一行。
询问数不会超过10000,鼹鼠数不会超过maxlongint。

Output
对于每个m=2,输出一行数,这行数只有一个数,即所询问的区域内鼹鼠的个数。

Sample Input
4
1 2 2 5
2 0 0 2 3
3

Sample Output
5


二维线段树板子题,其实二维线段树没那么高大上,维护一个以x排序的线段树,这棵线段树的每个节点都是维护以y排序的线段树,空间\(O(n^2)\),如果n大点就要用到类似主席树的动态开点技巧了

/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x7f7f7f7f
using namespace std;
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
inline int read(){int x=0,f=1;char ch=getchar();for (;ch<'0'||ch>'9';ch=getchar())  if (ch=='-')    f=-1;for (;ch>='0'&&ch<='9';ch=getchar())    x=(x<<1)+(x<<3)+ch-'0';return x*f;
}
inline void print(int x){if (x>=10)     print(x/10);putchar(x%10+'0');
}
const int N=1024;
#define ls (p<<1)
#define rs (p<<1|1)
int n;
struct Segment{int tree[(N<<2)+10];void change(int p,int l,int r,int x,int v){if (l==r){tree[p]+=v;return;}int mid=(l+r)>>1;if (x<=mid) change(ls,l,mid,x,v);else    change(rs,mid+1,r,x,v);tree[p]=tree[ls]+tree[rs];}int Query(int p,int l,int r,int x,int y){if (x<=l&&r<=y) return tree[p];int mid=(l+r)>>1,res=0;if (x<=mid) res+=Query(ls,l,mid,x,y);if (y>mid)  res+=Query(rs,mid+1,r,x,y);return res;}
}T[(N<<2)+10];
void change(int p,int l,int r,int x,int y,int v){T[p].change(1,0,n,y,v);if (l==r)   return;int mid=(l+r)>>1;if (x<=mid) change(ls,l,mid,x,y,v);else    change(rs,mid+1,r,x,y,v);
}
int Query(int p,int l,int r,int x,int y,int X,int Y){if (x<=l&&r<=y) return T[p].Query(1,0,n,X,Y);int mid=(l+r)>>1,res=0;if (x<=mid) res+=Query(ls,l,mid,x,y,X,Y);if (y>mid)  res+=Query(rs,mid+1,r,x,y,X,Y);return res;
}
int main(){n=read();while (true){int t=read();if (t==1){int x=read(),y=read(),k=read();change(1,0,n,x,y,k);}if (t==2){int ox=read(),oy=read(),ex=read(),ey=read();printf("%d\n",Query(1,0,n,ox,ex,oy,ey));}if (t==3)   break;}return 0;
}

转载于:https://www.cnblogs.com/Wolfycz/p/9465539.html

[Tyvj1474]打鼹鼠相关推荐

  1. Tyvj1474 打鼹鼠

    Description 在这个"打鼹鼠"的游戏中,鼹鼠会不时地从洞中钻出来,不过不会从洞口钻进去(鼹鼠真胆大--).洞口都在 一个大小为n(n<=1024)的正方形中.这个正 ...

  2. vijos 1512 SuperBrother打鼹鼠

    背景 SuperBrother在机房里闲着没事干(再对比一下他的NOIP,真是讽刺啊......),于是便无聊地开始玩"打鼹鼠"...... 描述 在这个"打鼹鼠&quo ...

  3. P2285 [HNOI2004]打鼹鼠

    P2285 [HNOI2004]打鼹鼠 题目描述 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿牛编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某 ...

  4. BZOJ 1207 打鼹鼠

    Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n的网格中,在某些时刻鼹鼠会在某一个网格探 ...

  5. 多态部分作业 3..创建Rodent(啮齿动物):Mnouse(老鼠),Gerbil(鼹鼠),Hamster(大颊鼠)

    package Day11; /*3..创建Rodent(啮齿动物):Mnouse(老鼠),Gerbil(鼹鼠),Hamster(大颊鼠),等等这样一个的继承层次结构.在基类中,提供对所有的Roden ...

  6. 【HNOI2004】【codevs1256】【BZOJ1207】打鼹鼠,小小DP

    打鼹鼠 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出 ...

  7. 游戏王计算机兽,游戏王星杯卡——迅猛龙,再生圣经,入侵蠕虫,鼹鼠,幽世之血樱...

    地卡--骏足之迅猛龙(3星/阶) 骏足之迅猛龙即为跑得快的意思,也有是瞬速的可能性在里面. 恐龙族/效果: 这张卡可以通常召唤也可以通过特殊召唤来使用.通过特殊召唤使用的场合,对方可以在对方的墓地选1 ...

  8. DP || HYSBZ 1207 打鼹鼠

    n*n的网格,有m个鼹鼠,t时间会有一只鼹鼠出现在(x,y)点处,如果机器人也在这个点就可以打到鼹鼠 机器人初始位置任意,每秒可以移动一格,问最多打到多少鼹鼠 *解法:f[i]表示前i只鼹鼠打了多少个 ...

  9. VIJOS 1512SuperBrother打鼹鼠(二维BIT)

    呵呵.. 二维树状数组,第二维和第一维基本一样. --------------------------------------------------------------------------- ...

最新文章

  1. cap mysql_.NetCore关于Cap(RabbitMQ)结合MySql使用出现MySql相关类冲突问题解决办法
  2. 用Python解“打印九九乘法表”题
  3. 内核配置中 ramdisk 大小修改
  4. Django Admin 录入中文错误解决办法
  5. Android JNI入门第四篇——jni头文件分析
  6. s5-6 Linux 标准输出 系统优化 目录结构
  7. 2021阿里云“API满意度”调研
  8. opendds开发指南中文版_最强的开发者技术路线图已经更新到 2020 GitHub 超 118k还有中文...
  9. 女生学医检好还是学计算机好,女生学医选择什么专业好?
  10. Nginx 二级子域名完美方案
  11. php编写数据库配置文件,通用php与mysql数据库配置文件
  12. Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
  13. MySQL left join right join inner join 区别
  14. 浅谈-国标GB28181协议上下级对接国标编码要求(四)
  15. CAD 系统变量参数大全
  16. 《代码整洁之道》:整洁代码有意义的命名
  17. sop流程图模板_这是一份标准作业流程SOP详解,附流程图绘制规范,不愁不会画!...
  18. linux hba卡超时时间,如何设置Emulex HBA 卡超时参数
  19. 【Python】使用torrentParser1.03对单文件torrent的分析结果
  20. 达梦DM单机部署以及日常运维管理

热门文章

  1. python画函数图像网格_使用opencv python在图像上绘制网格线
  2. XBOX之Kinect1与2的区别
  3. 认知-认知能力:认知能力
  4. uboot学习笔记之七-第三个函数board_init_r
  5. 嵌入式系统的基本架构
  6. Fluent UDF 实现用Newmark-β方法计算圆柱绕流流固耦合时的位移振动响应
  7. note: This error originates from a subprocess, and is likely not a problem with pip.解决 python降版本tips
  8. RecycleView 和Viewpager2
  9. Spring MVC 教程详解 个人总结 复习必备 面试宝典 狂神笔记
  10. 八年Android开发,看我如何简化Android的UI开发!