求助
#include<bits/stdc++.h>
#define N 309
#define C 109
using namespace std;
typedef int ll;
ll n,m,q,matrix[N][N],d[N][N][C];
ll LSB(ll x){return x&(-x);}
void add(ll x,ll y,ll v,ll z){
while(y<=N) d[x][y][v]+=z,y+=LSB(y);
}
ll query(ll s,ll x,ll y,ll z){
ll sum=0;
for(ll i=s;i<=x;++i){
ll r=y;
while(r) sum+=d[i][r][z],r-=LSB(r);
}
return sum;
}
ll read(){
char c;
ll x=0,d=1;
while(c<'0'||c>'9'){c=getchar();if(c=='-') d=-1;}
while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+c-'0',c=getchar();
return x*d;
}
int main(){
n=read(),m=read();
for(ll i=1;i<=n;++i)
for(ll j=1;j<=m;++j){
matrix[i][j]=read();
add(i,j,matrix[i][j],1);
}
q=read();
for(ll i=1;i<=q;++i){
ll type,a,b,c,x,y;
type=read();
if(type==1) a=read(),b=read(),c=read(),add(a,b,c,1),add(a,b,matrix[a][b],-1),matrix[a][b]=c;
else a=read(),x=read(),b=read(),y=read(),c=read(),printf("%lld\n",query(a,x,y,c)-query(a,x,b-1,c));
}
return 0;
}