[JSOI2009] 计数问题
题目描述
一个 $n \times\ m$ 的方格,初始时每个格子有一个整数权值。接下来每次有 2 种操作:
- 改变一个格子的权值;
- 求一个子矩阵中某种特定权值出现的个数。
输入输出格式
输入格式
第一行有两个数 $n,m$。
接下来 $n$ 行,每行 $m$ 个数,第 $i+1$ 行第 $j$ 个数表示格子 $(i,j)$ 的初始权值。
接下来输入一个整数 $Q$。
之后 $Q$ 行,每行描述一个操作。
操作 1:输入一行四个整数 $1\ x\ y\ c$,表示将格子 $(x,y)$ 的权值改成 $c$。
操作 2:输入一行六个整数 $2\ x_1\ x_2\ y_1\ y_2\ c$。表示询问所有满足格子颜色为 $c$,且满足 $x_1\le x\le x_2,y_1\le y\le y_2$ 的格子个数。
输出格式
对于每个操作 2,按照在输入中出现的顺序,依次输出一行一个整数表示所求得的个数。
输入输出样例
输入样例 #1
3 3
1 2 3
3 2 1
2 1 3
3
2 1 2 1 2 1
1 2 3 2
2 2 3 2 3 2
输出样例 #1
1
2
说明
【数据规模与约定】
对于 $30\%$ 的数据,满足:$n,m\le 30$,$Q\le 5\times 10^4$。
对于 $100\%$ 的数据,满足:$1\le n,m\le 300$,$1\le Q\le 2\times 10^5$。
对于操作 1,保证:$1\le x
\le n$,$1\le y\le m$,$1\le c\le 100$;
对于操作 2,保证:$1\le x_1≤x_2\le n$,$1\le y_1\le y_2\le m$,$1\le c\le 100$。