牛客训练六:海啸(二维树状数组+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)\),右 ...
随机推荐
- oracle中job定时任务96
.INTERVAL参数常用值示例 每天午夜12点 ''TRUNC(SYSDATE + 1)'' 每天早上8点30分 ''TRUNC(SYSDATE + 1) + ...
- RxJS之转化操作符 ( Angular环境 )
一 map操作符 类似于大家所熟知的 Array.prototype.map 方法,此操作符将投射函数应用于每个值 并且在输出 Observable 中发出投射后的结果. import { Compo ...
- Java-分治算法
一.分治算法的原理 分治算法就是将一个规模为N的问题分解成K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出子问题的解,就可以得出原问题的解 二.分治算法的伪代码实现 合并算法Merge ...
- swift - xcode10 - 点击事件交互BUG - (手势和button的addTarget方法)
1. 现象button 点击闪退:没有任何原因 ,在听云检测上,显示 BUG2: 手势 没有任何作用,哪怕设置 isUserInteractionEnabled 和isEnabled 为true 都 ...
- check-versions.js和dev-client.js
// 用于在控制台输出带颜色字体的插件var chalk = require('chalk') // 语义化版本检查插件(The semantic version parser used by npm ...
- Xshell无法使用root远程登录Ubuntu16服务器
修改/etc/ssh/sshd_config文件,把PermitRootLogin Prohibit-password 添加#注释掉 新添加:PermitRootLogin yes 2. 重启ssh服 ...
- will not be exported or published. Runtime ClassNotFoundExceptions may result.
在eclipse中加入某个jar包时,会出现Classpath entry XXX.jar will not be exported or published. Runtime ClassNotFou ...
- jquery关于attr和prop的差异
转自:http://www.jb51.net/article/88068.htm 处理像checkbox,radio和select这样的元素时,经常会发现明明使用了attr设置了selected或ch ...
- html标签一
<body></body> 网页内容 <p></p>段落 <h1></h1> ----<h6></h6> ...
- glide install失败 Update failed for golang.org/x/net: Cannot detect VCS
失败信息: [WARN] Unable to checkout golang.org/x/net[ERROR] Update failed for golang.org/x/net: Ca ...