|Vijos|树状数组|P1512 SuperBrother打鼹鼠
https://vijos.org/p/1512
一个二维树状数组,注意树状数组不能出现0,把所有坐标+1即可,求子矩阵和为
sub(x2,y2) - sub(x1-1,y2) - sub(x2, y1-1) + sub(x1-1,y1-1)
其中sub为(1,1)到(x,y)矩阵的和。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ms(i,j) memset(i, j, sizeof(i));
using namespace std;
const int maxn = 1024 + 10;
int n;
int sum[maxn][maxn];
int lowbit(int x)
{return x&(-x);
}
void add(int x, int y, int num)
{int i,j;for (i=x; i <= maxn; i += lowbit(i)){for (j=y; j <= maxn; j += lowbit(j)){sum[i][j] += num;}}
}
int sub(int x, int y)
{int ret = 0;int i,j;for (i=x; i > 0; i -= lowbit(i)){for (j=y; j > 0; j -= lowbit(j)){ret += sum[i][j];}}return ret;
}int main ()
{ scanf("%d", &n);int m;scanf("%d",&m);while (m!=3){if (m==1){int x,y,k;scanf("%d%d%d", &x, &y, &k);add(x+1,y+1,k);}if (m==2){int x1,y1,x2,y2;scanf("%d%d%d%d", &x1, &y1, &x2, &y2);x1++, x2++, y1++, y2++;int u = sub(x2,y2) - sub(x1-1,y2) - sub(x2, y1-1) + sub(x1-1,y1-1);printf("%d\n", u);}scanf("%d",&m);}return 0;
}
转载于:https://www.cnblogs.com/flyinthesky1/p/6384326.html
|Vijos|树状数组|P1512 SuperBrother打鼹鼠相关推荐
- 打鼹鼠 contest 树状数组练习 T7
Description 在一个"打鼹鼠"的游戏中,鼹鼠会不时地从洞中钻出来,不过不会从洞口钻进去(鼹鼠真胆大--).洞口都在一个大小为n(n<=1024)的正方形中.这个正方 ...
- Vijos P1448 校门外的树【多解,线段树,树状数组,括号序列法+暴力优化】
校门外的树 描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的-- 如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作: K=1,K= ...
- vijos 1448 校门外的树 树状数组
描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的-- 如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作: K=1,K=1,读入l. ...
- 快乐地打牢基础(4)——树状数组
在解题的过程中,我们想维护一个数组的前缀和s[i] = A[1] + A[2] +-+A[i].我们改变任意一个A[i],那么S[i]之后都会发生变化,朴素写法调整前缀和S最坏的情况需要O(n)的时间 ...
- 洛谷 P5057 [CQOI2006]简单题(树状数组)
嗯... 题目链接:https://www.luogu.org/problem/P5057 首先发现这道题中只有0和1,所以肯定与二进制有关.然后发现这道题需要支持区间更改和单点查询操作,所以首先想到 ...
- Color the ball(HDU1556)树状数组
每次对区间内气球进行一次染色,求n次操作后后所有气球染色次数. 树状数组,上下区间更新都可以,差别不大. 1.对于[x,y]区间,对第x-1位减1,第y位加1,之后向上统计 #include<b ...
- 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组
[BZOJ2434][NOI2011]阿狸的打字机 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P ...
- Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)
题意: 线段树做法 分析: 因为每次都是在当前位置的前缀区间查询最大值,所以可以直接用树状数组优化.比线段树快了12ms~ 代码: #include<cstdio> #include< ...
- poj_3067 树状数组
题目大意 左右两个竖排,左边竖排有N个点,从上到下依次标记为1,2,...N; 右边竖排有M个点,从上到下依次标记为1,2....M.现在从K条直线分别连接左边一个点和右边一个点,求这K条直线的交点个 ...
最新文章
- vue-cli 没有build如何配置_webpack4配置实现浏览器长期缓存
- Android之java.lang.UnsatisfiedLinkError(Failed to register native method ***callMethod1())解决办法
- Spring MVC总结
- “小众”之美——Ruby在QA自动化中的应用
- PHP 基础知识测试题
- 剑指 Offer II 056 二叉搜索树中两个节点之和
- 初探VMware View 5.1
- 动图怎么分解成静图?教你一键在线分解gif动图?
- 用python读取Excel数据
- 【nginx】nginx读书笔记
- 一个有点像舔狗的插件
- Windows11拼音打字不出现候选字词窗口
- python彩色蟒蛇绘制
- 网络学习 IP路由器寻址过程
- 【MySQL主从复制】使用MySQL8.0.17的clone技术在线搭建主从复制环境
- ibm服务器面板报警指示灯含意
- 做一个派发工单的微信小程序
- AWS Submit 2016 观感
- 论文阅读——BERT
- 对话框程序禁用系统的关闭按钮X
热门文章
- 关于2016年房价的思考
- tensorflow安装教程
- php 引入类_PHP 如何引入同一文件下多个class类
- IDEA---Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
- keepoutlayer设定_AD的keepout层是做什么用的,如何使用
- tomcat需要设置环境变量吗
- 027_自己实现一个ArrayList
- 076_浏览器对象模型
- idea数字栏符号含义_关于铂金钻戒的几个常见数字符号含义,你都了解吗
- 微信电脑客户端登陆_电脑截图必须登陆QQ微信?这款截屏软件或许是更好的选择...