[USACO09HOL]假期绘画Holiday Painting
观察到列数只有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相关推荐
- [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树
Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...
- AB级 考试高频词 1000个
AB级 考试高频词 1000个 1 能力 ability 46 申请 application 91 街区 block 2 在船上 aboard 47 欣赏;感激 appreciate 92 女衬衫 b ...
- ,英式发音和美式发音有什么区别
其实美式英语是英式英语转变而来的.其中区别有如: 英式英语(British English)和美式英语(American English)的差别是客观存在的,学英文的人会注意到两者之间的差异.其实世界 ...
- 您只能在Photoshop CS4中做的3酷技巧
I have to admit it crossed my mind. The new Photoshop arrived and I found myself thinking: "Ah, ...
- 一文告诉你Java日期时间API到底有多烂
前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...
- web前端图片极限优化策略
随着web的发展,网站资源的流量也变得越来越大.据统计,60%的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力. 一.现有web图片格式 我们先来看下现在常用 ...
- GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理
GIF/PNG/JPG/WEBP/APNG都是属于位图(位图 ,务必区别于矢量图): GIF/PNG和JPG这三种格式的图片被广泛应用在现今的互联网中,gif曾在过去互联网初期慢速的情况下几乎是做到了 ...
- jpg和png的区别
在保存图片的时候,特别是保存截屏图片时,常常不知道图片的保存格式是选择jpg还是选择png. 我通常是选择jpg,但发现在多次上传后,jpg格式的图片越来越模糊. 划重点: JPG VS PNG:JP ...
- Meta最新款VR头显体验者亲述:Quest Pro更漂亮、更有趣,但戴久了,脑袋疼!
来源:AI前线 作者:Rachel Metz 编译:核子可乐.冬梅 价值一万多块的 VR 头显设备,你会买吗? 声明:本文为 InfoQ 翻译,未经许可禁止转载. 当地时间 10 月 11 日,元宇宙 ...
最新文章
- linux下从git获取有权限的代码,linux下从源代码安装git
- 谷歌邮箱上不了的情况下怎么登录谷歌邮箱
- 我的Windows Vista™也装好了...
- 订单BOM与销售BOM的区别
- pom.xml增加依赖
- linux 安装x环境,linux下安装xdebug
- java 列表展开方式_android列表控件实现展开、收缩功能
- css button 四种状态,css中按钮的四种状态
- jinja filter
- BIEE配置多个实例(BIEE Multiple Instance)
- html自适应布局_三分钟学会响应式布局和自适应布局
- 145. PHP header status code
- 信道容量受哪三个要素_好的餐饮店门头招牌应该怎么设计呢?需要具备哪些要素?...
- TensorFlow之Numpy(3)
- 三、unaipp小程序二维码生成
- 用git和github来拉近和大牛的距离-郭永峰-专题视频课程
- C艹入门 -> 入土
- 委托租赁云服务器协议,委托租赁云服务器协议
- xampp运行不成功或者安装过程中提示找不到文件“-n”,没有安装vcredist_x86的解决方法
- 什么是云原生数据库?
热门文章
- Codeforces Round #192 (Div. 1) A. Purification 贪心
- 给原型扩展一下tirm方法
- OpenCV-python学习笔记(四)——smoothing and blurring平滑和模糊
- 如何限制浏览器使用_如何使用浪涌电流限制器NTC(一)
- python数据分析第一步:读取以及查看数据
- python appium api pc_Appium Python API 中文版
- 1024乘风破浪季,3本好书助你平步青云
- 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
- python函数递归 字符串反转
- ChaiNext:比特币打穿4.2万美元,市场多空胶着