SuperBrother打鼹鼠

Vijos链接

题目描述:

在一个矩阵中,有三种操作:

1.后面跟着3个数x,y,k,表示在点(x,y)处新出现了k只鼹鼠。

2.后面跟着4个数x1,y1,x2,y2,表示询问矩形(x1,y1)-(x2,y2)内的鼹鼠数量。

3.表示结束。

思路:

一个树状数组就可以搞定了,不过需要二维的树状数组,才能实现二维的区间查询。

代码:

 #include<cstdio>
long long n,m,dis[][],tot,a,b,c,d;
using namespace std;
void add(long long x,long long y,long long z){
for(long long i=x;i<=n;i+=i&(-i))
for(long long j=y;j<=n;j+=j&(-j))
dis[i][j]+=z;
}
long long q(long long x,long long y){
tot=;
for(long long i=x;i;i-=i&(-i))
for(long long j=y;j;j-=j&(-j))
tot+=dis[i][j];
return tot;
}
int main(){
scanf("%lld",&n);
while(){
scanf("%lld",&m);
if(m==){
scanf("%lld%lld%lld",&a,&b,&c);
a++;b++;
add(a,b,c);
}
else
if(m==){
scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
a++;b++;c++;d++;
printf("%lld\n",q(c,d)-q(a-,d)-q(c,b-)+q(a-,b-));
}
else
break;
}
return ;
}

最新文章

  1. 五、jquery使用工具函数
  2. Python黑帽编程 4.0 网络互连层攻击概述
  3. Winsock 入门 判读主机字节序 示例
  4. oracle中,拼接的字符串给游标赋值
  5. c#语言基础编程—string
  6. idea mac 快键键
  7. JqueryUI插件网络连接
  8. 淘宝对接API
  9. The number of positions
  10. LIS 最长递增子序列问题
  11. 【Excel】获取网页标题的VBA
  12. 重庆3Shape Dental System技术支持
  13. PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)
  14. Shiro 系列 - 基本知识
  15. 【AtCoder】【思维】【图论】Splatter Painting(AGC012)
  16. 动车上的书摘-java网络 连接服务器
  17. 7.3 GRASP原则三: 低耦合 Low Coupling
  18. Http指南(3)
  19. 跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  20. Python中setup.py一些不为人知的技巧

热门文章

  1. C++string类型转换为C数组
  2. java校验maven下载的jar文件
  3. URAL 1057 Amount of Degrees (数位DP,入门)
  4. DB2中创建表
  5. NOIP模拟赛 抓牛
  6. C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)
  7. Git基本操作笔记:初始化,用户设置,撤销修改
  8. GoogleTest 之路1-Generic Build Instructions编译指导总方案
  9. ASP( VBScript ) 解析 JSON
  10. destoon 多表联合查询时出现解析错误,parse_str函数解析错误