牛客训练六:海啸(二维树状数组+vector函数的使用)
题目链接:传送门
思路:
二维树状数组,
vector(first,last)函数中assign函数相当于将first中的函数清空,然后将last中的值赋值给first。
参考文章:传送门
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
const int maxn = 1e6+;
vector <vector <int> >vc;
int n,m;
int lowbit(int x)
{
return x&(-x);
}
void update(int x,int y)
{
int i,j;
for(i=x;i<=n;i+=lowbit(i))
for(j=y;j<=m;j+=lowbit(j))
vc[i][j]+=;
}
int query(int x,int y)
{
int i,j,ans=;
for(i=x;i>;i-=lowbit(i))
for(j=y;j>;j-=lowbit(j))
ans+=vc[i][j];
return ans;
}
int get_sum(int x,int y,int A,int B)
{
return query(A,B)+query(x-,y-)-query(x-,B)-query(A,y-);
}
int main(void)
{
int i,j,x,y,A,B,q,d;
while(~scanf("%d%d%d",&n,&m,&d)){
vc.assign(n+,vector <int>(m+,));
for(i=;i<=n;i++)
for(j=;j<=m;j++)
{
scanf("%d",&x);
if(x>=d) update(i,j);
}
scanf("%d",&q);
while(q--){
scanf("%d%d%d%d",&x,&y,&A,&B);
printf("%d\n",get_sum(x,y,A,B));
}
}
return ;
}
牛客训练六:海啸(二维树状数组+vector函数的使用)的更多相关文章
- 牛客网 暑期ACM多校训练营(第二场)J.farm-STL(vector)+二维树状数组区间更新、单点查询 or 大暴力?
开心.jpg J.farm 先解释一下题意,题意就是一个n*m的矩形区域,每个点代表一个植物,然后不同的植物对应不同的适合的肥料k,如果植物被撒上不适合的肥料就会死掉.然后题目将每个点适合的肥料种类( ...
- BZOJ3132 上帝造题的七分钟 【二维树状数组】
题目 "第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a,b),右下角为(c,d)的一个矩形区域内的全部数字加上一个值的 ...
- MooFest_二维树状数组
Description Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a s ...
- tyvj P1716 - 上帝造题的七分钟 二维树状数组区间查询及修改 二维线段树
P1716 - 上帝造题的七分钟 From Riatre Normal (OI)总时限:50s 内存限制:128MB 代码长度限制:64KB 背景 Background 裸体就意味着 ...
- 二维树状数组poj1195
题目链接:https://vjudge.net/problem/POJ-1195 题意:一开始输入0和一个s,0代表开始,s代表这是一个s*s的图,接下来会输入1或2,1代表进行单点修改,后面会接3个 ...
- 【 HDU - 4456 】Crowd (二维树状数组、cdq分治)
BUPT2017 wintertraining(15) #5A HDU 4456 题意 给你一个n行n列的格子,一开始每个格子值都是0.有M个操作,p=1为第一种操作,给格子(x,y)增加z.p=2为 ...
- PKU 2155 Matrix(裸二维树状数组)
题目大意:原题链接 题意很简单,就不赘诉了. 解题思路: 使用二维树状数组,很裸的题. 二维的写起来也很方便,两重循环. Add(int x,int y,int val)表示(x,y)-(n,n)矩形 ...
- 【bzoj3132】上帝造题的七分钟 二维树状数组区间修改区间查询
题目描述 “第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a,b),右下角为(c,d)的一个矩形区域内的全部数字加上一个值的操作. ...
- 二维树状数组+差分【p4514】上帝造题的七分钟
Description "第一分钟,X说,要有矩阵,于是便有了一个里面写满了\(0\)的\(n\times m\)矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为\((a,b)\),右 ...
随机推荐
- white-space和word-wrap和word-break所表示的换行和不换行的区别
一.前言 使得文本换行有很多方式, <br/>标签元素,能够强制使得所在位置文本换行 <p>元素,<div>设定宽度,都可以对文本内容实现自适应换行 对于长单词或者 ...
- session高级(session入库)
我们知道,session是一种会话技术,用来实现跨脚本共享数据. 在之前的php会话技术中我们介绍过,session是存放在服务器端的文件里的,因此session有可能因为文件数量过多,会在查询ses ...
- Django创建模型,迁移数据
1.在models.py文件中添加代码 class notice(models.Model): notice_title = models.CharField(max_length=255) noti ...
- 线特征---LSD and LBD程序运行(一)
最近在看有关特征提取的线特征,暑期就看了相关的论文:<基于点线综合特征的双目视觉SLAM方法_谢晓佳>,最近呢,把里面有关线特征提取LSD和描述子LBD的代码跑了一遍,记录如下: [1]L ...
- js验证前后密码是否一致,为什么当我输入不一致密码时,不会弹出警告啊
<form name="form" action="#"><input type="password" id=" ...
- Oracle性能优化1-总体思路和误区
最近在看梁敬彬老师关于Oracle性能优化的一些案例,在这里做一些简单的总结 1.COUNT(*)与COUNT(列)哪个更快 drop table t purge; create table t as ...
- 8Q - 献给杭电五十周年校庆的礼物
我不能参赛,就送给学校一个DOOM III球形大蛋糕吧.等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢? ...
- 8I - 吃糖果
HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样:可是Gardon不知道是否存在一种吃 ...
- Android.StructureOfAndroidSourceCodeRootTree
Refference 1. How to understand the directory structure of android root tree? http://stackoverflow.c ...
- Luogu 2467[SDOI2010]地精部落 - DP
Solution 这题真秒啊,我眼瞎没有看到这是个排列 很显然, 有一条性质: 第一个是山峰 和 第一个是山谷的情况是一一对应的, 只需要把每个数 $x$ 变成 $n-x+1$ 然后窝萌定义数组 $ ...