当前位置: 首页 > news >正文

题解:P11662 [JOI 2025 Final] 方格染色 / Grid Coloring

题目传送门

是一道黄题
这里提供一种 \(O(n\log n)\) 的做法


\(\mathscr{PART\ \ ONE}\)


我们在手%的时候不难发现(注意力有点也不惊人)
虽然第一列和第一行 不保证有序
但是因为这里的前缀$\ max\ $性质保证了第二列和第二行有序
我们很容易用 \(O(n)\) 把他们求出来
定义这两个数组为 \(a_i\)\(b_i\)


\(\mathscr{PART\ \ TWO}\)

我们缩小范围,只观察这些绿色和橙色的区域,
发现 \(a_i\)\(b_i\) 单调递增,
考虑对于每个 \(a_i\) 我们在 \(b_i\) 里面找到小于它的一段。
这里也不用想太多,
直接使用lower_bound就可以解决
详细的代码可能有点难调(我也不知道为什么)(反正我调了很久)
然后对于其他部分,
我们开个数组差分,最后一遍的时候再处理就好了
$\ $
(小声嘟囔)其实就是暴力想法加上了一堆优化


\(\Huge \mathbb{CODE}\)
已经按照GOOGLE标准格式化


#include<bits/stdc++.h>
#define int long long
using namespace std;
#define f(a,b,c) for(int a=b;a<=c;a++)
#define ft(a,b) for(auto a:b)const int N=2e5+10;
int n;
int A[N];
int B[N];
int a[N];
int b[N];
int cf[N];
map<int,int>mp;main(void){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n;for(int i=1;i<=n;i++){cin>>A[i];if(i==1)continue;//spjmp[A[i]]++;}for(int i=1;i<=n;i++){cin>>B[i];mp[B[i]]++;}b[1]=A[2];for(int i=2;i<=n;i++){b[i]=max(b[i-1],B[i]);mp[b[i]]++;}a[1]=B[2];for(int i=2;i<=n;i++){a[i]=max(a[i-1],A[i]);if(i==2)continue;//spjmp[a[i]]++;}for(int i=3;i<=n;i++){int pos=lower_bound(b+3,b+n,a[i])-b;if(a[i]<b[pos])pos--;mp[a[i]]+=pos-3+1;cf[pos+1]++;}for(int i=3;i<=n;i++)cf[i]+=cf[i-1];for(int i=3;i<=n;i++)mp[b[i]]+=cf[i];int id=A[1],ans=mp[A[1]];for(int i=2;i<=n;i++){if(mp[A[i]]>ans)id=A[i],ans=mp[A[i]];else if(mp[A[i]]==ans)id=max(id,A[i]);if(mp[B[i]]>ans)id=B[i],ans=mp[B[i]];else if(mp[B[i]]==ans)id=max(id,B[i]);}cout<<id<<' '<<ans<<endl;
}
//[JOI 2025 Final] 方格染色 
http://www.zskr.cn/news/25680.html

相关文章:

  • CSP-S 32 多校5
  • CSP-S 29
  • ES原理、zookeeper、kafka
  • LangGraph 记忆系统实战:反馈循环 + 动态 Prompt 让 AI 持续学习
  • 【HOWTO】购买和销售二手测试仪器指南
  • 小马算力致敬程序员
  • 蛋白表达标签:重组蛋白研究的精妙引擎
  • 106.腾讯地图位置服务再出错
  • Luogu P10034 「Cfz Round 3」Circle 题解 [ 蓝 ] [ 背包 DP ] [ 质数筛 ] [ 图论 ] [ 构造 ]
  • 20232410 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • SQLite简单使用
  • 心理咨询系统
  • Adaptive Learning Rate(自适应学习率) - -一叶知秋
  • 新学期每日总结(第12天)
  • 17 线程的创建
  • 2025.10.20总结 - A
  • 一般公共预算收入 + 全国政府性基金收入
  • 傻瓜式处理kauditd0病毒程序记录
  • 软件工程第二次团队作业
  • 好用的网址
  • 低代码赋能业务创新:打破数字鸿沟,释放业务潜能
  • 10/20/2025杂题 关于在线性时间内求解低次多项式的幂
  • 计算机毕业设计 基于EChants的海洋气象数据可视化平台设计与建立 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
  • ZR 2025 NOIP 二十连测 Day 5
  • 关于单片机内部ADC采样率,采样精度的理解与计算整理 - 实践
  • Mac版PDF Squeezer v4.5.1安装教程(DMG文件下载+详细步骤)​
  • 详细揭秘:马拉车算法
  • 黑马程序员Java基础笔记
  • 实用指南:linux磁盘空间爆满排查与清理
  • 详细介绍:从零开始的C++学习生活 2:类和对象(上)