【BZOJ1452】[JSOI2009]Count(树状数组)

题面

BZOJ

洛谷

题解

数据范围这么小?不是对于每个颜色开一个什么东西记一下就好了吗。

然而我不会二维树状数组?

不存在的,凭借多年树套树经验自己\(yy\)一下就好了。

一维是后缀加法,二维当然就是给整个矩阵加法了啊。

#include<iostream>
#include<cstdio>
using namespace std;
inline int read()
{
int x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
int n,m,Q,a[303][303];
int c[103][303][303];
int lb(int x){return x&(-x);}
void modify(int p,int x,int y,int w)
{
for(int i=x;i<=n;i+=lb(i))
for(int j=y;j<=m;j+=lb(j))
c[p][i][j]+=w;
}
int Query(int p,int x,int y)
{
int ret=0;
for(int i=x;i;i-=lb(i))
for(int j=y;j;j-=lb(j))
ret+=c[p][i][j];
return ret;
}
int Query(int p,int x1,int y1,int x2,int y2)
{
return Query(p,x2,y2)-Query(p,x2,y1-1)-Query(p,x1-1,y2)+Query(p,x1-1,y1-1);
}
int main()
{
n=read();m=read();
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
modify(a[i][j]=read(),i,j,1);
Q=read();
while(Q--)
{
int opt=read();
if(opt==1)
{
int x=read(),y=read(),w=read();
modify(a[x][y],x,y,-1);
modify(a[x][y]=w,x,y,1);
}
else
{
int x1=read(),x2=read(),y1=read(),y2=read(),w=read();
printf("%d\n",Query(w,x1,y1,x2,y2));
}
}
return 0;
}

【BZOJ1452】[JSOI2009]Count(树状数组)的更多相关文章

  1. [bzoj1452][JSOI2009]Count(树状数组)

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2057  Solved: 1216[Submit][Stat ...

  2. [bzoj1452][JSOI2009]Count_树状数组

    Count bzoj-1452 JSOI-2009 题目大意:请维护一个平面内的数据结构,支持:单点修改,查询矩形内给定权值出现次数. 注释:$1\le n,m\le 300$,$1\le Q \le ...

  3. 【BZOJ-1452】Count 树状数组 套 树状数组

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1769  Solved: 1059[Submit][Stat ...

  4. hdu 3874(树状数组)题解

    Problem Description Mery has a beautiful necklace. The necklace is made up of N magic balls. Each ba ...

  5. BZOJ1452 [JSOI2009]Count 【树套树 (树状数组)】

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2693  Solved: 1574 [Submit][St ...

  6. BZOJ1452 [JSOI2009]Count [2017年4月计划 树状数组02]

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2419  Solved: 1403[Submit][Stat ...

  7. bzoj1452 [JSOI2009]Count ——二维树状数组

    中文题面,给你一个矩阵,每一个格子有数字,有两种操作. 1. 把i行j列的值更改 2. 询问两个角坐标分别为(x1,y1) (x2,y2)的矩形内有几个值为z的点. 这一题的特点就是给出的z的数据范围 ...

  8. 【bzoj1452】[JSOI2009]Count 二维树状数组

    题目描述 输入 输出 样例输入 样例输出 1 2 题解 二维树状数组 一开始没看到 1≤c≤100 ,想到了主X树和X块,结果发现c的范围那么小... 二维树状数组水题,和一维的一样,向上修改,向下查 ...

  9. BZOJ 1452: [JSOI2009]Count 二维树状数组

    1452: [JSOI2009]Count Description Input Output Sample Input Sample Output 1 2 HINT Source 题解:设定C[101 ...

随机推荐

  1. 如何使用jstack分析线程状态

    背景 记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高 ...

  2. maven使用出现的错误

    修改mvn archetype:create  改成mvn archetype:generate 刚开始学习用Maven, 装好了以后生成一个新的project mvnarchetype:genera ...

  3. ME_PROCESS_PO_CUST 实现采购订单行项目增强

    用户希望创建采购订单时,输入行项目时,能根据采购订单类型,自动带出科目分类类别. 业务顾问看了一下配置,不能实现这个功能,所以用增强实现. 采购订单BADI增强:ME_PROCESS_PO_CUST. ...

  4. MySQL默认INFORMATION_SCHEMA,MySQL,TEST三个数据库用途(转)

    本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA:提供了访问数据库元数据的方式 ...

  5. 使用selenium进行自动化测试

    selenium 支持多个客户端:ruby,Java,python.可以用来对网页进行全面测试,支持真实浏览器测试. firefox IE chrome safari 支持多操作系统: Linux w ...

  6. 20155308《网络对抗》Exp8 Web基础

    20155308<网络对抗>Exp8 Web基础 实践原理与实践说明 本实践的具体要求有: (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与P ...

  7. SpingMVC的<context:component-scan>包扫描踩坑记录

        公司项目配置的Spring项目的包扫描有点问题,出现了一个被Spring容器管理的Bean被创建了2次的现象.在此记录下解决的过程,方便后续查阅. 改动前: 容器启动监听器中会扫描全部包,创建 ...

  8. stm32f051 DMA需要注意的一点

    STM32f051的DMA注意事项 问题说明:在使用ADC的DMA通道时,遇到了序列转换的乱序问题,我使用的是DMA循环模式,但是采集的数据却总是错的:第二个内存地址存放的是ADC序列转换中的第一个通 ...

  9. 小内存VPS apache并发控制参数prefork调优

    小内存VPS优化(使用wdcp lnamp一键包安装环境的情况下): 1.主要优化perfork模式下几个参数,防止开启过多的httpd进程占用大量内存导致内存满:在wdcp下修改的httpd配置文件 ...

  10. Js_字体滚动换颜色

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...