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

CF2069B Set of Strangers 解题报告

题目传送门

题目大意

对于一个 \(n\times m\) 的颜色板,每次操作只能选择若干个相同颜色且任意两个块都没有相邻的边的块,将这些块涂成同一种任意颜色,问要将这个颜色板的所有块的颜色统一,最少要进行多少次操作。

解题思路

选取一种最终颜色 \(c\),对于其中的任意一种颜色 \(c'\)

  • 如果这种颜色的块中没有相邻的,那么一次以内的操作以定能将其变成颜色 \(c\)
  • 若果这种颜色的块中有相邻的,第一次操作对于相邻的块,选取其一进行修改,则第二次操作时剩余的块肯定都不相邻,那么最多两次操作一定能将其变成颜色 \(c\)

综上,每一种颜色根据其有没有相邻的块可以分成一次和两次修改完,对于颜色板遍历一遍,标记出有相邻块的颜色和没有块的颜色即可。

对于要选取的最终颜色 \(c\),只需贪心的选取要进行的操作次数最多的颜色即可。

AC Code

#include<bits/stdc++.h>
using namespace std;
int a[720][720];//颜色板 
int ans;//答案 
int tpe[500000];//每种颜色需要进行的操作数 
int re()//快读
void wr(int x)//快写
signed main(){int T=re();while (T--){int n=re(),m=re();ans=0;for(int i=1;i<=n*m;i++)tpe[i]=0;for(int i=1;i<=n;i++)a[i][m+1]=0;for(int i=1;i<=m;i++)a[n+1][i]=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)a[i][j]=re();for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){int flag=(a[i][j]==a[i-1][j]||a[i][j]==a[i][j-1]||a[i][j]==a[i+1][j]||a[i][j]==a[i][j+1]);//flag代表这种颜色是否有相邻 if(tpe[a[i][j]]==0)ans+=tpe[a[i][j]]=int(flag)+1;//有相邻就是2,没相邻就是1 else if(tpe[a[i][j]]==1)ans+=int(flag),(tpe[a[i][j]]+=int(flag));//flag==1则为2 elsecontinue;}int maxx=0;//选取操作次数最多的颜色 for(int i=1;i<=n*m;i++)maxx=max(maxx,tpe[i]);wr(ans-maxx),putchar('\n');}return 0;
}
http://www.gsyq.cn/news/98719.html

相关文章:

  • 2025年十大旗舰对决:极致轻薄成高端手机新战场
  • P9573 「TAOI-2」核心共振 解题报告
  • Transformer彻底剖析(11):多层感知机MLP
  • P9345 夕阳西下几时回 解题报告
  • 本地部署开源可视化界面开发工具 Node-RED 并实现外部访问( Linux 版本)
  • 本地部署开源可视化界面开发工具 Node-RED 并实现外部访问( Windows 版本)
  • 实习面试题-ZooKeeper 原理面试题
  • U249090 密码门 私题题解
  • 【Vue3】 中 ref 与 reactive:状态与模型的深入理解
  • 双机并联虚拟同步发电机仿真模型:均分负载与优质波形输出,可拓展自适应与光伏储能技术
  • Grep 例程大全
  • 网页前端如何通过JSP实现大文件秒传功能?
  • Ursa.Avalonia样式系统终极指南:5大技巧助你构建企业级UI
  • Asio应用(高级):构建高性能、安全、跨平台的网络系统
  • 实习面试题-Spark SQL 面试题
  • CF1619G Unusual Minesweeper 解题报告
  • 基于vue的个人博客论坛交流网站_sdj10346_springboot php python nodejs
  • 如何使用yolov11训练使用—番茄炭疽病与品质检测数据集 炭疽病症状识别、病害区域检测、成熟果实与腐烂果实区分 目标检测 4类 可直接用于模型训练 YOLO适用的txt格式
  • 四旋翼无人机PID控制仿真模型探索
  • JAVA中如何利用JSP实现视频文件的分片上传?
  • 列出自己网站音频书籍资源方法附php代码
  • 隐式转换,强制转换,字符串,字符的加操作
  • .NET进阶——深入理解Lambda表达式(2)手搓LINQ语句
  • Android中Compose系列之按钮Button
  • wangEditor支持pdf书签目录结构导入功能
  • Agent 结构(LLM + Tool + Executor)
  • 红米10x将一键清理和锁屏加到桌面步骤
  • 台达DVPEH3系列PLC与欧姆龙E5CC温控器通讯及控制实现
  • 192KHz 双声道输入 24 位 AD 转换器国产品牌DP8340兼容CS5340
  • Cameralink采集卡软件EspeedGrab使用讲解:3 保存采集参数