洛谷4054 [JSOI2009]计数问题
原题链接
二维树状数组模板题。
对每一种颜色开一棵二维树状数组统计即可。
#include<cstdio>
using namespace std;
const int N = 310;
const int M = 110;
int C[M][N][N], a[N][N], n, m;
inline int re()
{
int x = 0;
char c = getchar();
bool p = 0;
for (; c < '0' || c > '9'; c = getchar())
p |= c == '-';
for (; c >= '0' && c <= '9'; c = getchar())
x = x * 10 + c - '0';
return p ? -x : x;
}
inline int lowbit(int x)
{
return x & -x;
}
void add(int co, int x, int y, int z)
{
int i;
for (; x <= n; x += lowbit(x))
for (i = y; i <= m; i += lowbit(i))
C[co][x][i] += z;
}
int ask(int co, int x, int y)
{
int s = 0, i;
for (; x; x -= lowbit(x))
for (i = y; i; i -= lowbit(i))
s += C[co][x][i];
return s;
}
int main()
{
int i, j, x, y, xx, yy, q, p, z;
n = re();
m = re();
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
{
a[i][j] = re();
add(a[i][j], i, j, 1);
}
q = re();
while (q--)
{
p = re();
if (!(p ^ 1))
{
x = re();
y = re();
z = re();
add(a[x][y], x, y, -1);
add(a[x][y] = z, x, y, 1);
}
else
{
x = re();
xx = re();
y = re();
yy = re();
z = re();
printf("%d\n", ask(z, xx, yy) - ask(z, xx, y - 1) - ask(z, x - 1, yy) + ask(z, x - 1, y - 1));
}
}
return 0;
}
洛谷4054 [JSOI2009]计数问题的更多相关文章
- 洛谷P4054 [JSOI2009]计数问题(二维树状数组)
题意 题目链接 Sol 很傻x的题.. c才100, n, m才300,直接开100个二维树状数组就做完了.. #include<bits/stdc++.h> using namespac ...
- 【洛谷P4054】计数问题
题目大意:维护 N*M 个点,每个点有三个权值,支持单点修改,查询矩形区间内权值等于某个值的点的个数. 题解:矩阵可以看成两个维度,权值为第三个维度,为一个三维偏序维护问题.发现第三维仅仅为单点修改和 ...
- 洛谷 P4307 [JSOI2009]球队收益 / 球队预算(最小费用最大流)
题面 luogu 题解 最小费用最大流 先假设剩下\(m\)场比赛,双方全输. 考虑\(i\)赢一局的贡献 \(C_i*(a_i+1)^2+D_i*(b_i-1)^2-C_i*a_i^2-D_i*b_ ...
- 洛谷P4407 [JSOI2009]电子字典
题目描述 人们在英文字典中查找某个单词的时候可能不知道该单词的完整拼法,而只知道该单词的一个错误的近似拼法,这时人们可能陷入困境,为了查找一个单词而浪费大量的时间.带有模糊查询功能的电子字典能够从一定 ...
- 洛谷 P1980【计数问题】 题解(2)
还有一种办法,就是用stringstream函数将每一次的数全都转化成char一维数组样式的字符串,然后逐位扫一遍即可. (记得判断字符时将规定数字+48) //Stand up for the fa ...
- 洛谷 P1980【计数问题】 题解(1)
鉴于数据最高只有七位数,通过判断数位,逐位判断即可完成本题. (运行很快,打得手疼) //Stand up for the faith!#include<bits/stdc++.h> us ...
- 洛谷$P4045\ [JSOI2009]$密码 $dp$+$AC$自动机
正解:$dp$+$AC$自动机+搜索 解题报告: 传送门$QwQ$ 首先显然先建个$AC$自动机,然后考虑设$f_{i,j,k}$表示长度为$i$,现在在$AC$自动机的第$j$个位置,已经表示出来的 ...
- 模板:二维树状数组 【洛谷P4054】 [JSOI2009]计数问题
P4054 [JSOI2009]计数问题 题目描述 一个n*m的方格,初始时每个格子有一个整数权值.接下来每次有2种操作: 改变一个格子的权值: 求一个子矩阵中某种特定权值出现的个数. 输入输出格式 ...
- 洛谷——P1980 [NOIP2013 普及组] 计数问题
题目描述 试计算在区间 11 到 nn的所有整数中,数字x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2, ...
随机推荐
- 学习JS的心路历程-范围Scope和提升(Hoisting)
在上一篇提到了JS有三种声明变量的方式,分别是var.const及let,var和const let最大区别就是范围(scope)的限制.所以在这一篇我们会详谈何谓范围链及他们的复写优先级. 范围Sc ...
- Promise 学习
参考 https://www.jianshu.com/p/43f948051d65 // Promise里面传入一个函数类型的参数,这个函数类型的参数接收两个参数resolve reject var ...
- css flex 属性教程
https://www.zhangxinxu.com/wordpress/2018/10/display-flex-css3-css/#align-self display: flex; flex-w ...
- linux安装node简单方法
1.去官网下载和自己系统匹配的文件: 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通过 uname -a ...
- editplus设置自动换行方法 editplus自动换行设置步骤
原文链接:https://www.jb51.net/softjc/165897.html 发布时间:2014-05-14 17:03:54 作者:佚名 我要评论 editplus自动换行设置 ...
- 2.4、CDH 搭建Hadoop在安装(Cloudera Software安装和配置MySQL)
为Cloudera Software安装和配置MySQL 要使用MySQL数据库,请按照以下过程操作.有关MySQL数据库兼容版本的信息,请参阅CDH和Cloudera Manager支持的数据库. ...
- 修复回写PR时到料日期重复扣减检验周期的问题:
问题描述: 修复回写PR时到料日期重复扣减检验周期的问题:系统回写的外购半成品PR交货日期未按采购周期回写,从8-10日开始均于10天交期回写,例以下9-5日今天回写的PR,采购周期12天,结果回写到 ...
- Avalon Framework
Apache Avalon has closed. Apache Avalon began in 1999 as the Java Apache Server Framework and in lat ...
- day21 xml模块 ATM+购物车
1. xml模块 <father name="jack"> # 属性的值必须加双引号 <son> 标签的关闭顺序,与开启顺序相反, 最先开启的最后关闭,最后 ...
- 修改nginx日志格式为json
Nginx 日志默认为普通文本的格式 /Oct/::: +] "https://boss.zbt.com/finance/partner/create-account-gateway?id= ...