这周好好码树状数组和线段树!!之前没写过二维树状数组,凭借一维的思路居然写了个比较像模像样的东西出来,原来我没那么脑残。唯一要注意的就是getsum四个矩形加减的边界条件,这里看了别人标程才意识到错误QAQ!

program vijos_p1512;
var f,t:array[..,..] of longint;
n,m,i,j,x,y,k,x1,x2,y1,y2:integer;
ans:longint;
function lowbit(x:longint):longint;
begin
lowbit:=x and (-x);
end; procedure add(x,y,delta:longint);
var ty:longint;
begin
ty:=y;
while (x<=n) do
begin
while (y<=n) do
begin
inc(f[x,y],delta);
y:=y+lowbit(y);
end;
x:=x+lowbit(x);
y:=ty;
end;
end; function getsum(x,y:longint):longint;
var ty,p:longint;
begin
ty:=y;p:=;
while (x>) do
begin
while (y>) do
begin
inc(p,f[x,y]);
y:=y-lowbit(y);
end;
x:=x-lowbit(x);
y:=ty;
end;
getsum:=p;
end; begin
readln(n);
read(m);
while m<> do
begin
if m= then
begin
readln(x,y,k);
add(x+,y+,k);
end;
if m= then
begin
readln(x1,y1,x2,y2);
ans:=getsum(x2+,y2+)-getsum(x1,y2+)-getsum(x2+,y1)+getsum(x1,y1);
writeln(ans);
end;
read(m);
end;
end.

SuperBrother打鼹鼠

测试数据 #0: Accepted, time = 0 ms, mem = 4780 KiB, score = 10

测试数据 #1: Accepted, time = 46 ms, mem = 4776 KiB, score = 10

测试数据 #2: Accepted, time = 7 ms, mem = 4776 KiB, score = 10

测试数据 #3: Accepted, time = 0 ms, mem = 4780 KiB, score = 10

测试数据 #4: Accepted, time = 46 ms, mem = 4776 KiB, score = 10

测试数据 #5: Accepted, time = 15 ms, mem = 4776 KiB, score = 10

测试数据 #6: Accepted, time = 15 ms, mem = 4780 KiB, score = 10

测试数据 #7: Accepted, time = 15 ms, mem = 4772 KiB, score = 10

测试数据 #8: Accepted, time = 31 ms, mem = 4780 KiB, score = 10

测试数据 #9: Accepted, time = 31 ms, mem = 4776 KiB, score = 10

(神马居然没秒杀?难道还有更快做法?!)

[vijos P1512] SuperBrother打鼹鼠的更多相关文章

  1. 【VIJOS】P1512 SuperBrother打鼹鼠

    [算法]二维树状数组 [题解] 1.树状数组尽量不要出现0,因此所有坐标+1 2.面积求法(默认1开始):(x1,y1)(x2,y2)=sum(x2,y2)-sum(x1-1,y2)-sum(x2,y ...

  2. vijos 1512 SuperBrother打鼹鼠

    背景 SuperBrother在机房里闲着没事干(再对比一下他的NOIP,真是讽刺啊......),于是便无聊地开始玩“打鼹鼠”...... 描述 在这个“打鼹鼠”的游戏中,鼹鼠会不时地从洞中钻出来, ...

  3. Vijos1512 SuperBrother打鼹鼠

    SuperBrother打鼹鼠 Vijos链接 题目描述: 在一个矩阵中,有三种操作: 1.后面跟着3个数x,y,k,表示在点(x,y)处新出现了k只鼹鼠. 2.后面跟着4个数x1,y1,x2,y2, ...

  4. [Vijos] SuperBrother打鼹鼠

    背景 SuperBrother在机房里闲着没事干(再对比一下他的NOIP,真是讽刺啊......),于是便无聊地开始玩“打鼹鼠”...... 描述 在这个“打鼹鼠”的游戏中,鼹鼠会不时地从洞中钻出来, ...

  5. 二维树状数组——SuperBrother打鼹鼠(Vijos1512)

    树状数组(BIT)是一个查询和修改复杂度都为log(n)的数据结构,主要用于查询任意两位之间的所有元素之和,其编程简单,很容易被实现.而且可以很容易地扩展到二维.让我们来看一道很裸的二维树状数组题: ...

  6. 树状数组训练题2:SuperBrother打鼹鼠(vijos1512)

    先给题目链接:打鼹鼠 这道题怎么写? 很明显是树状数组. 而且,很明显是二维树状数组. 如果你没学过二维的树状数组,那么戳开这里:二维树状数组 看完以后,你就会知道怎么做了. 没有什么好解释的,几乎就 ...

  7. [Vijos1512] SuperBrother打鼹鼠 (二维树状数组)

    传送门 直接搞就行. 注意下表re从零开始,而树状数组搞不了0,所以统一增加一个偏移量1. (话说数据随机是什么鬼?) # include <iostream> # include < ...

  8. vijos 1512

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

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

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

随机推荐

  1. C++—复合类型

    内容概要: -创建和使用数组 -创建和使用C-风格字符串 -创建和使用string类字符串 -使用方法getline()和get()读取字符串 -混合输入字符串和数字 -创建和使用结构 -创建和使用共 ...

  2. Maven——聚合与继承

    原文:http://www.cnblogs.com/xdp-gacl/p/4058008.html 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 ...

  3. python字符串替换的2种有效方法

    python 字符串替换可以用2种方法实现:1是用字符串本身的方法.2用正则来替换字符串 下面用个例子来实验下:a = 'hello word'我把a字符串里的word替换为python1用字符串本身 ...

  4. spring 配置触发器

    原转发的博文 http://blog.csdn.net/liaq325/article/details/8269439 在Spring中配置Quartz 前面介绍过了Timer在Spring中的实现, ...

  5. SAP标准价格修改

    标准MR21修改前期的价格,不会影响到当期. 相关配置 事务码OMRN. 如企业账期已经开到 2015 年 2 月,会计账期还可对 1月记账,配置后可修改1月物料价格.

  6. 原生js基础问题的一些备忘

    1.在原生js里面  window.onload=function(){}  这个就相当于jquery中 $(document).ready(function(){}); 这样 2.getElemen ...

  7. 【CITE】DrawImage方法详解(转)

    Image和Bitmap类概述 GDI+的Image类封装了对BMP.GIF.JPEG.PNG.TIFF.WMF(Windows元文件)和EMF(增强WMF)图像文件的调入.格式转换以及简单处理的功能 ...

  8. LayoutInflater和inflate()方法的用法

    LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 实现LayoutInflater的实例化共有3种方法, (1).通过SystemService获得 Layou ...

  9. python中函数使用

    1.关于函数的调用,简单小例子: >>> def fun():  print(test) >>> test='ni hao ma ?'>>> fu ...

  10. SASS学习笔记1 —— 安装、编译和调试

    一.什么是SASS SASS是一种"CSS预处理器"(css preprocessor)的开发工具,为CSS加入编程元素,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的 ...