BZOJ1452_Count_KEY
二维树状数组,对于每个颜色开一个树状数组,用容斥求解。
code:
#include <cstdio>
using namespace std; int read()
{
char c;while(c=getchar(),c<''||c>'');
int x=c-'';while(c=getchar(),c>=''&&c<='')x=x*+c-'';
return x;
} int N,M,tr[][][],a[][]; void add(int x,int y,int c,int p)
{
for(int i=x;i<=N;i+=i&-i)
for(int j=y;j<=M;j+=j&-j)
tr[c][i][j]+=p;
return ;
} int get(int x,int y,int c)
{
int ans=;
for(int i=x;i;i-=i&-i)
for(int j=y;j;j-=j&-j)
ans+=tr[c][i][j];
return ans;
} int main()
{
N=read(),M=read();
for(int i=;i<=N;i++)
for(int j=;j<=M;j++)
add(i,j,a[i][j]=read(),);
int Q=read();
while(Q--){
int o=read();
if(o==){
int x=read(),y=read(),c=read();
add(x,y,a[x][y],-);
add(x,y,a[x][y]=c,);
}
else{
int x=read(),fx=read(),y=read(),fy=read(),c=read();
printf("%d\n",get(fx,fy,c)-get(x-,fy,c)-get(fx,y-,c)+get(x-,y-,c));
}
}
}
BZOJ1452_Count_KEY的更多相关文章
随机推荐
- 使用SAP C4C rule editor动态控制UI上某个按钮是否显示
假设我想根据Sales Order的outbound delivery字段来控制这个Trigger Delivery按钮的动态显示: 首先Adapt->Edit Master Layout进入K ...
- 理解Underscore的设计架构
在一个多月的毕业设计之后,我再次开始了Underscore的源码阅读学习,断断续续也写了好些篇文章了,基本把一些比较重要的或者个人认为有营养的函数都解读了一遍,所以现在学习一下Underscore的整 ...
- bzoj5152 [Wc2018]通道
题目链接 正解:不会做. 写一个爬山算法就过官方数据了(逃 具体来说就是每次随机一个根,然后迭代找最长路的那个点. 多随机几次取$max$就行了.正解以后再补.. #include <bits/ ...
- hdu1579 Function Run Fun(深搜+记忆化)
版权声明:本文为博主原创文章.未经博主同意不得转载.vasttian https://blog.csdn.net/u012860063/article/details/37076755 转载请注明出处 ...
- BZOJ4530:[BJOI2014]大融合(LCT)
Description 小强要在N个孤立的星球上建立起一套通信系统.这套通信系统就是连接N个点的一个树. 这个树的边是一条一条添加上去的.在某个时刻,一条边的负载就是它所在的当前能够 联通的树上路过它 ...
- PHP-------抽象和接口
静态的关键字是:static Class ren { Public static $yanse; //yanse是一个静态的成员 Static function show() ; // stat ...
- Linux总结(十二)set_uid set_gid stic_bit 软链接 硬链接
一 set_uid 之前我们修改普通用户的登陆密码,都是以管理员身份在操作,比如我们在lv账户下,我们使用sudo passwd lv 重置lv账户密码,此时我们直接拿到root权限忽略掉了文件权限的 ...
- JDBC(4)PreparedStatement
PreparedStatement: 是一个预编译对象 是Statement的子接口 允许数据库预编译SQL 执行SQL的时候,无需重新传入SQL语句,它们已经编译SQL语句 执行SQL语句 :exe ...
- .Net Core SignalR 初体验
前言 Asp.Net SignalR已经出来很久了,但是一直没有静下心来好好看看.昨天花了几个小时的时间看了下.首先借鉴了官方文档,如何搭建一个SignalR的Demo. 参考文章:https://d ...
- supervisord的安装
作用: 用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制. 安装流程 ...