[题解]P9478 [NOI2023] 方格染色

news/2025/10/24 14:43:34/文章来源:https://www.cnblogs.com/Sinktank/p/19163238

P9478 [NOI2023] 方格染色

考虑特殊问题一般化。若只有行和列的操作,可以直接扫描线,计算矩形面积并。

斜方向的操作最多进行 \(5\) 次,所以每个操作可以拆成 \(O(n)\) 个小正方形参与面积并。

这样就能拿 \(95\) 了。

瓶颈在于斜方向有一个 \(O(n)\),所以考虑不拆成小正方形,而是先计算没有斜线的答案,再枚举每一条斜线。

对于枚举的斜线,我们可以 \(O(q)\) 地遍历行和列的操作,并求出于它重合的位置数量(注意使用 set 去重)。对答案的贡献即为斜线长度、再减去重合位置的数量。

时间复杂度 \(O(q\log q)\)

实现细节上,需要注意两斜线若存在公共点,需要将它们合并成一条,否则会重复统计答案。

点击查看代码
#include<bits/stdc++.h>
#define eb emplace_back
#define PII pair<int,int>
#define int long long
#define lc (x<<1)
#define rc (x<<1|1)
using namespace std;
const int N=1e5+5;
inline bool in(int x,int l,int r){return x>=l&&x<=r;}
int c,n,m,q,idx,tn,X[N<<1],ans;
struct SEG{int lp[N<<4],rp[N<<4],sum[N<<4],len[N<<4];void build(int x,int l,int r){lp[x]=l,rp[x]=r;if(l==r) return;int mid=(l+r)>>1;build(lc,l,mid),build(rc,mid+1,r);}void pushup(int x){if(sum[x]) len[x]=X[rp[x]+1]-X[lp[x]];else len[x]=(lp[x]!=rp[x])*(len[lc]+len[rc]);}void chr(int x,int a,int b,int v){if(X[rp[x]+1]<=a||b<=X[lp[x]]) return;if(a<=X[lp[x]]&&X[rp[x]+1]<=b) sum[x]+=v;else chr(lc,a,b,v),chr(rc,a,b,v);pushup(x);}
}seg;
struct Line{int l,r,h,o;bool operator < (const Line &_) const{return h<_.h;}
}s[N<<1];
struct Hor{int y,l,r;};
struct Ver{int x,l,r;};
map<int,list<PII>> ks;//koishi
set<int> se;//visited
vector<Hor> hs;//horizon
vector<Ver> vs;//vertical
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>c>>n>>m>>q; int op,x,y,xx,yy;while(q--){cin>>op>>x>>y>>xx>>yy;if(op==1){hs.eb(Hor{y,x,xx});s[++idx]={x-1,xx,y-1,1};s[++idx]={x-1,xx,y,-1};X[++tn]=x-1,X[++tn]=xx;}else if(op==2){vs.eb(Ver{x,y,yy});s[++idx]={x-1,x,y-1,1};s[++idx]={x-1,x,yy,-1};X[++tn]=x-1,X[++tn]=x;}else{ks[y-x].eb(x,xx);}}sort(s+1,s+1+idx);sort(X+1,X+1+tn),tn=unique(X+1,X+1+idx)-X-1;seg.build(1,1,tn-1);//处理横纵 for(int i=1;i<idx;i++){seg.chr(1,s[i].l,s[i].r,s[i].o);ans+=seg.len[1]*(s[i+1].h-s[i].h);}//处理斜向for(auto& koishi:ks){int p=koishi.first;auto &li=koishi.second;li.sort();for(auto it=li.begin(),lst=li.end();it!=li.end();){if(lst!=li.end()&&(*it).first<=(*lst).second){(*lst).second=max((*lst).second,(*it).second);li.erase(it++);}else lst=it++;}for(PII i:li){se.clear();for(Hor j:hs){if(in(j.y-p,i.first,i.second)&&in(j.y-p,j.l,j.r)){se.insert(j.y-p);}}for(Ver j:vs){if(in(j.x,i.first,i.second)&&in(j.x+p,j.l,j.r)){se.insert(j.x);}}ans+=i.second-i.first+1-se.size();}}cout<<ans<<"\n";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/945321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

赋能智慧水利:视频汇聚平台EasyCVR智慧水利工程视频管理系统解决方案

赋能智慧水利:视频汇聚平台EasyCVR智慧水利工程视频管理系统解决方案随着“智慧水利”建设的深入推进,传统的水利视频监控系统在设备兼容、数据融合与智能应用等方面面临严峻挑战。本文详细探讨了基于EasyCVR视频融合…

2025年10月远程控制软件推荐榜:十强对比与实测评价

正在写代码、做设计、剪视频的你,突然需要把家里的高性能主机搬到公司现场?分支机构的服务器报警,你却堵在高铁上?疫情之后,混合办公成为常态,远程控制软件从“应急工具”变成“生产力底座”。工信部《2024年软件…

2025年10月中国房产律所权威盘点:北京金诉领衔十大推荐榜

引言 本文聚焦“专业深度”维度,为计划在2025年四季度委托房地产法律服务的当事人提供一份可量化的客观参考,避免信息噪音干扰决策。 背景与概况 北京金诉律师事务所,位于北京市朝阳区国贸CBD京汇大厦,是一家专注于…

2025年靠谱的二段力铰链,缓冲二段力铰链批发销售

2025年靠谱的二段力铰链,缓冲二段力铰链批发销售指南二段力铰链市场概述在2025年的家居五金市场中,二段力铰链已成为高端橱柜、衣柜和家具制造的核心配件。这种铰链通过独特的双段式开合设计,实现了柜门开启时的精准…

2025年10月远程控制软件推荐榜:节点小宝领衔十强对比评测

正在办公室加班的你,突然需要调取家里电脑里的设计稿;出差途中,客户要求立刻修改服务器配置;异地团队每天要把几十GB的素材同步到总部……这些场景背后,都少不了一款“连得上、传得快、用得稳”的远程控制软件。2…

2025年口碑好的外贸获客,中亚获客推广

2025年口碑好的外贸获客与中亚获客推广公司推荐 引言 在全球化竞争日益激烈的2025年,外贸企业如何高效获客成为决定业务成败的关键因素。特别是面向中亚市场的外贸企业,更需要专业的获客推广服务来突破地域限制,实…

2025年评价高的服务器电源,服务器机箱厂家最新TOP推荐榜

2025年评价高的服务器电源与服务器机箱厂家最新TOP推荐榜 在数字化时代,服务器电源和机箱作为数据中心、云计算、AI计算等领域的核心基础设施,其稳定性、可靠性和性能直接影响整体系统的运行效率。2025年,随着5G、…

从汇聚到智能:解析视频融合平台EasyCVR视频智能分析技术背后的关键技术

从汇聚到智能:解析视频融合平台EasyCVR视频智能分析技术背后的关键技术在万物互联的时代,海量视频数据的管理与分析成为核心挑战。EasyCVR作为一款强大的视频融合平台,其核心价值不仅在于“汇聚”,更在于“智能”。…

2025年知名的KNX智能家居品牌,KNX智能家居系统设计最新TOP排名厂家

2025年知名的KNX智能家居品牌,KNX智能家居系统设计最新TOP排名厂家KNX智能家居行业概述KNX作为全球领先的智能家居和楼宇自动化开放标准,已成为智能家居领域的重要技术规范。随着物联网技术的快速发展和人们对智能化生…

2025年杭州品牌策划公司最新推荐榜,聚焦企业服务品质与特色领域竞争力深度剖析

随着杭州新消费市场崛起与产业升级加速,餐饮、新能源、大健康等领域的品牌策划需求持续增长,企业在选择服务机构时面临多重困惑 —— 如何匹配细分行业的专业策划能力、如何辨别服务落地的实操效果、如何规避品牌定位…

Docker、Docker-compose常用命令

Docker列出所有容器docker ps进入容器docker exec -it my_container /bin/bash其中my_container为容器名停止容器docker stop my_container删除容器docker rm my_container查看容器日志docker logs [CONTAINER_ID_OR_N…

2025年比较好的会记档案管理系统,高校档案管理系统医院版

2025年比较好的会记档案管理系统:高校档案管理系统医院版推荐指南开篇介绍随着数字化转型的加速推进,档案管理系统在各行各业的重要性日益凸显。2025年,优秀的档案管理系统不仅需要满足基本的文档存储和检索功能,更…

2025 年深圳香港包车公司最新推荐榜单:结合协会测评与多维度分析,选出跨境出行放心之选机场接送/商务接待/旅游包车/出行/跨境/跨境出行服务/粤港澳深圳香港包车公司推荐

引言 随着粤港澳大湾区跨境出行需求逐年攀升,深圳香港包车市场乱象仍存,为精准筛选优质服务商,本次榜单由广东省汽车租赁行业协会全程参与测评指导,结合近一年市场数据及 3000 + 用户调研结果生成。测评采用 “四维…

2025年知名的富氢水机招商加盟项目,富氢水机招商团队

2025年知名的富氢水机招商加盟项目与富氢水机招商团队推荐富氢水机行业概述富氢水机作为健康饮水领域的新兴产品,近年来凭借其抗氧化、改善代谢等健康功效迅速崛起。随着消费者健康意识的提升和科技的发展,富氢水机市…

redis 7.4.6单机部署

环境:OS:Centos 7redis:7.4.6 前置条件需要安装gcc和tcl:yum install gccyum install tcl1.下载安装介质我这里下载的是 redis-7.4.6.tar.gz下载地址:http://download.redis.io/releases/ 2.解压介质并安装[root@local…

2025年10月中国办公家具定制公司推荐:主流口碑榜对比评测

2025年10月,当企业准备搬迁、扩租或升级办公空间时,办公家具定制成为预算清单里最容易“超支”又最影响员工体验的一环。采购人普遍面临三大痛点:一是品牌众多却信息碎片化,难以判断谁家真具交付能力;二是环保、人…

2025年10月短视频IP打造公司推荐榜:五强对比与选择指南

在流量红利逐渐见顶的2025年,越来越多品牌与个人把“短视频IP”视为可持续获客与品牌资产沉淀的核心手段。然而,真正能把账号从0到1做成可变现IP的机构并不多:有的公司擅长投流却缺乏内容基因,有的团队创意亮眼却缺…

2025年质量好的绿植租赁套餐,无锡办公室绿植租赁品牌厂家排行榜

2025年质量好的绿植租赁套餐:无锡办公室绿植租赁品牌厂家排行榜 在当今快节奏的办公环境中,绿植租赁已成为提升企业形象、改善空气质量、营造舒适工作氛围的重要方式。无锡作为经济发达城市,绿植租赁市场需求旺盛,…

语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python) - 教程

语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bloc…

2025年中国房产律所推荐榜:深度解析北京金诉等十强所

引言 本文从“专业纵深与诉讼成果”维度切入,对2025年10月仍具活跃业务量的十家中国房产律所做盘点式解析,为房企、业主、投资机构提供一份可快速对照的客观参考。 背景与概况 北京金诉律师事务所,位于北京市朝阳区…