[USACO09HOL]假期绘画Holiday Painting
观察到列数只有15,可以想到对于每一列维护一颗线段树
sum表示该区间与目标矩阵中该区间相同元素个数
lazy表示该区间应被修改成什么颜色
g即目标矩阵中该区间白色格子的个数
显然一个区间的sum=区间长度-g(修改为0时) 或 g(修改为1时)
#define RG register
#include<cstdio>
using namespace std;
const int N=;
int n,m,q,X,Ans;
int a[N][];
inline int read()
{
RG int x=,w=;RG char ch=getchar();
while(ch<''||ch>''){if(ch=='-')w=-;ch=getchar();}
while(ch>=''&&ch<='')x=x*+ch-'',ch=getchar();
return x*w;
}
struct segment{
int sum[N<<],lazy[N<<],g[N<<];
inline void Pushup(int rt){sum[rt]=sum[rt<<]+sum[rt<<|];}
void Build(int rt,int l,int r,int k){
if(l==r)
{
sum[rt]=a[l][k]^;
g[rt]=a[l][k];
return;
}
int mid=(l+r)>>;
Build(rt<<,l,mid,k);
Build(rt<<|,mid+,r,k);
Pushup(rt);
g[rt]=g[rt<<]+g[rt<<|];
}
inline void Pushdown(int rt,int s){//s即区间长度
int t=lazy[rt];
if(t==-)return;
if(!t)
{
sum[rt<<]=(s-(s>>))-g[rt<<];
sum[rt<<|]=(s>>)-g[rt<<|];
}
else
{
sum[rt<<]=g[rt<<];
sum[rt<<|]=g[rt<<|];
}
lazy[rt<<]=lazy[rt<<|]=t;
lazy[rt]=-;
}
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+-g[rt];
lazy[rt]=X;
return;
}
Pushdown(rt,r-l+);
int mid=(l+r)>>;
if(ll<=mid)Modify(rt<<,l,mid,ll,rr);
if(rr>mid)Modify(rt<<|,mid+,r,ll,rr);
Pushup(rt);
}
}T[];
int main()
{
n=read();
m=read();
q=read();
RG char c;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
c=getchar();
while(c!=''&&c!='')c=getchar();
a[i][j]=c-'';
}
for(int i=;i<=m;i++)T[i].Build(,,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(,,n,x1,x2);
Ans=;
for(int i=;i<=m;i++)Ans+=T[i].sum[];
printf("%d\n",Ans);
}
return ;
}
[USACO09HOL]假期绘画Holiday Painting的更多相关文章
- P2930 [USACO09HOL]假期绘画Holiday Painting
线段树水题,考虑到只有15列,所以我们对于每一列,我们都去维护一个线段树. 现在来考虑一下修改操作,因为每次修改的时候,我们都是将黑的改成白的,白的改成黑的,所以我们对线段树的每个节点维护当前这段区间 ...
- [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树
Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...
- [BZOJ1582] [Usaco2009 Hol]Holiday Painting 节日画画(线段树)
传送门 线段树区间修改傻题 #include <cstdio> #include <cstring> #include <iostream> #define N 5 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 关于图片的PNG与JPG、JIF格式
一:GIF(Graphics Interchange Format) 简介 GIF图形交换格式是一种位图图形文件格式,以8位色(即256种颜色)重现真彩色的图像. 它实际上是一种压缩文档,采用LZW压 ...
- 前端进阶试题css(来自js高级前端开发---豪情)既然被发现了HOHO,那我就置顶了嘿嘿!觉得自己技术OK的可以把这套题目做完哦,然后加入高级前端的社区咯
http://www.cnblogs.com/jikey/p/4426105.html js高级前端开发加群方法(此群很难进,里面纯技术,严禁广告,水群) 完整题目做完发邮箱(jikeytang@16 ...
- web前端图片极限优化策略
随着web的发展,网站资源的流量也变得越来越大.据统计,60%的网站流量均来自网站图片,可见对图片合理优化可以大幅影响网站流量,减小带宽消耗和服务器压力. 一.现有web图片格式 我们先来看下现在常用 ...
- GIF/PNG/JPG和WEBP/base64/apng图片优点和缺点整理
GIF/PNG/JPG/WEBP/APNG都是属于位图(位图 ,务必区别于矢量图): GIF/PNG和JPG这三种格式的图片被广泛应用在现今的互联网中,gif曾在过去互联网初期慢速的情况下几乎是做到了 ...
- cg tut
Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...
随机推荐
- aspectj编程简介
现在java生态中spring大行其道,一般使用aspectj进行切面编程使用注解方式实现,比较少使用原生的aspectj编程,网上的资料也比较少.最近工作中需要封装redisson客户端提供统一的r ...
- python 自动化之路
https://www.cnblogs.com/yangliheng/category/878973.html
- react 表单受控和非受控
参见:https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/ 非受控: onSubmit = ()=>{ const val ...
- centos7初上手1-安装mysql数据库
随着云服务器的普及,购入云服务器的门槛越来越低,对一个程序员来说,很多人会购买一款云服务器.以前买过两年windows服务器(没有什么实际用途,就是为了玩),最近有机会接触一下linux服务器,选择了 ...
- 界面控件DevExpress发布v18.2.7,新版全新出发|附下载
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- Adobe Flash Player 29.0.0.140官方正式版
Adobe Flash Player 29 正式版例行更新,v29.0.0.140 这是最新详细版本号,Adobe采取和微软相似的更新策略,在每个月的第二个周二为产品发布安全更新.Adobe® Fla ...
- Linux集群架构(二)
Linux集群架构(二) 目录 八.LVS DR模式搭建 九.keepalived + LVS 十.扩展 八.LVS DR模式搭建 1.实验环境: 四台机器: client: 10.0.1.50 Di ...
- Zabbix增加邮箱后Server宕处理
zabbix版本:4.1 DB为Mysql 过程: 1,为了增加邮件报警功能,按照网上文章,开始增加发送邮件模块.先停postfix,后安装mailx和sendmail. systemctl lis ...
- spring对bean的高级装配之基于@Conditional条件化装配
上篇介绍了如何基于profile来条件化创建bean,spring会根据profile的激活状态来进行创建;这篇介绍如何基于spring4.0引入的@Conditional和Condition接口来更 ...
- elasticsearch的监控脚本
监控elasticsearch cluster 集群 通过主动模式将数据发送给zabbix server import json import struct import socket import ...