Vijos1512 SuperBrother打鼹鼠
2024-08-24 00:10:00
SuperBrother打鼹鼠
题目描述:
在一个矩阵中,有三种操作:
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 ;
}
最新文章
- 五、jquery使用工具函数
- Python黑帽编程 4.0 网络互连层攻击概述
- Winsock 入门 判读主机字节序 示例
- oracle中,拼接的字符串给游标赋值
- c#语言基础编程—string
- idea mac 快键键
- JqueryUI插件网络连接
- 淘宝对接API
- The number of positions
- LIS 最长递增子序列问题
- 【Excel】获取网页标题的VBA
- 重庆3Shape Dental System技术支持
- PIL库自我学习总结及应用(美白,磨皮,搞笑图片处理)
- Shiro 系列 - 基本知识
- 【AtCoder】【思维】【图论】Splatter Painting(AGC012)
- 动车上的书摘-java网络 连接服务器
- 7.3 GRASP原则三: 低耦合 Low Coupling
- Http指南(3)
- 跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
- Python中setup.py一些不为人知的技巧
热门文章
- C++string类型转换为C数组
- java校验maven下载的jar文件
- URAL 1057 Amount of Degrees (数位DP,入门)
- DB2中创建表
- NOIP模拟赛 抓牛
- C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)
- Git基本操作笔记:初始化,用户设置,撤销修改
- GoogleTest 之路1-Generic Build Instructions编译指导总方案
- ASP( VBScript ) 解析 JSON
- destoon 多表联合查询时出现解析错误,parse_str函数解析错误