观察到列数只有15,可以想到对于每一列维护一颗线段树

sum表示该区间与目标矩阵中该区间相同元素个数

lazy表示该区间应被修改成什么颜色

g即目标矩阵中该区间白色格子的个数

显然一个区间的sum=区间长度-g(修改为0时) 或 g(修改为1时)

#define RG register
#include<cstdio>
using namespace std;
const int N=50005;
int n,m,q,X,Ans;
int a[N][16];
inline int read()
{RG int x=0,w=1;RG char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*w;
}
struct segment{int sum[N<<2],lazy[N<<2],g[N<<2];inline void Pushup(int rt){sum[rt]=sum[rt<<1]+sum[rt<<1|1];}void Build(int rt,int l,int r,int k){if(l==r){sum[rt]=a[l][k]^1;g[rt]=a[l][k];return;}int mid=(l+r)>>1;Build(rt<<1,l,mid,k);Build(rt<<1|1,mid+1,r,k);Pushup(rt);g[rt]=g[rt<<1]+g[rt<<1|1];}inline void Pushdown(int rt,int s){//s即区间长度int t=lazy[rt];if(t==-1)return;if(!t){sum[rt<<1]=(s-(s>>1))-g[rt<<1];sum[rt<<1|1]=(s>>1)-g[rt<<1|1];}else{sum[rt<<1]=g[rt<<1];sum[rt<<1|1]=g[rt<<1|1];}lazy[rt<<1]=lazy[rt<<1|1]=t;lazy[rt]=-1;}void Modify(int rt,int l,int r,int ll,int rr){if(ll<=l&&r<=rr){if(X)sum[rt]=g[rt];else sum[rt]=r-l+1-g[rt];lazy[rt]=X;return;}Pushdown(rt,r-l+1);int mid=(l+r)>>1;if(ll<=mid)Modify(rt<<1,l,mid,ll,rr);if(rr>mid)Modify(rt<<1|1,mid+1,r,ll,rr);Pushup(rt);}
}T[16];
int main()
{n=read();m=read();q=read();RG char c;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){c=getchar();while(c!='0'&&c!='1')c=getchar();a[i][j]=c-'0';}for(int i=1;i<=m;i++)T[i].Build(1,1,n,i);RG int x1,x2,y1,y2;while(q--){x1=read();x2=read();y1=read();y2=read();X=read();for(int i=y1;i<=y2;i++)T[i].Modify(1,1,n,x1,x2);Ans=0;for(int i=1;i<=m;i++)Ans+=T[i].sum[1];printf("%d\n",Ans);}return 0;
}

转载于:https://www.cnblogs.com/zzrblogs/p/10461817.html

[USACO09HOL]假期绘画Holiday Painting相关推荐

  1. [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树

    Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...

  2. AB级 考试高频词 1000个

    AB级 考试高频词 1000个 1 能力 ability 46 申请 application 91 街区 block 2 在船上 aboard 47 欣赏;感激 appreciate 92 女衬衫 b ...

  3. ,英式发音和美式发音有什么区别

    其实美式英语是英式英语转变而来的.其中区别有如: 英式英语(British English)和美式英语(American English)的差别是客观存在的,学英文的人会注意到两者之间的差异.其实世界 ...

  4. 您只能在Photoshop CS4中做的3酷技巧

    I have to admit it crossed my mind. The new Photoshop arrived and I found myself thinking: "Ah, ...

  5. 一文告诉你Java日期时间API到底有多烂

    前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...

  6. web前端图片极限优化策略

    随着web的发展,网站资源的流量也变得越来越大.据统计,60%的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力. 一.现有web图片格式 我们先来看下现在常用 ...

  7. GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理

    GIF/PNG/JPG/WEBP/APNG都是属于位图(位图 ,务必区别于矢量图): GIF/PNG和JPG这三种格式的图片被广泛应用在现今的互联网中,gif曾在过去互联网初期慢速的情况下几乎是做到了 ...

  8. jpg和png的区别

    在保存图片的时候,特别是保存截屏图片时,常常不知道图片的保存格式是选择jpg还是选择png. 我通常是选择jpg,但发现在多次上传后,jpg格式的图片越来越模糊. 划重点: JPG VS PNG:JP ...

  9. Meta最新款VR头显体验者亲述:Quest Pro更漂亮、更有趣,但戴久了,脑袋疼!

    来源:AI前线 作者:Rachel Metz 编译:核子可乐.冬梅 价值一万多块的 VR 头显设备,你会买吗? 声明:本文为 InfoQ 翻译,未经许可禁止转载. 当地时间 10 月 11 日,元宇宙 ...

最新文章

  1. linux下从git获取有权限的代码,linux下从源代码安装git
  2. 谷歌邮箱上不了的情况下怎么登录谷歌邮箱
  3. 我的Windows Vista™也装好了...
  4. 订单BOM与销售BOM的区别
  5. pom.xml增加依赖
  6. linux 安装x环境,linux下安装xdebug
  7. java 列表展开方式_android列表控件实现展开、收缩功能
  8. css button 四种状态,css中按钮的四种状态
  9. jinja filter
  10. BIEE配置多个实例(BIEE Multiple Instance)
  11. html自适应布局_三分钟学会响应式布局和自适应布局
  12. 145. PHP header status code
  13. 信道容量受哪三个要素_好的餐饮店门头招牌应该怎么设计呢?需要具备哪些要素?...
  14. TensorFlow之Numpy(3)
  15. 三、unaipp小程序二维码生成
  16. 用git和github来拉近和大牛的距离-郭永峰-专题视频课程
  17. C艹入门 -> 入土
  18. 委托租赁云服务器协议,委托租赁云服务器协议
  19. xampp运行不成功或者安装过程中提示找不到文件“-n”,没有安装vcredist_x86的解决方法
  20. 什么是云原生数据库?

热门文章

  1. Codeforces Round #192 (Div. 1) A. Purification 贪心
  2. 给原型扩展一下tirm方法
  3. OpenCV-python学习笔记(四)——smoothing and blurring平滑和模糊
  4. 如何限制浏览器使用_如何使用浪涌电流限制器NTC(一)
  5. python数据分析第一步:读取以及查看数据
  6. python appium api pc_Appium Python API 中文版
  7. 1024乘风破浪季,3本好书助你平步青云
  8. 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
  9. python函数递归 字符串反转
  10. ChaiNext:比特币打穿4.2万美元,市场多空胶着