构造+贪心,CF 432E,Square Tiling
一、题目
1、题目描述
2、输入输出
2.1输入
2.2输出
3、原题链接
Problem - 432E - Codeforces
二、解题报告
1、思路分析
很简单的一个构造题
考虑字典序从左到右从上到下,所以我们正常遍历
对于当前格子如果空闲,那么找到一个能填的最小字符
然后检查该格子可扩展的最大边长为多少
然后将正方形填字符即可
2、复杂度
时间复杂度: O((MN)^2)空间复杂度:O(MN)
3、代码详解
#include <bits/stdc++.h>using i64 = long long;void solve() {int n, m;std::cin >> n >> m;std::vector<std::vector<int>> g(n, std::vector<int>(m));std::array<int, 5> dir { 1, 0, -1, 0, 1 };auto check = [&](int i, int j) -> int {if (g[i][j]) return g[i][j];for (int c = 1; c <= 26; ++ c) {bool f = true;for (int k = 0; k < 4; ++ k) {int ii = i + dir[k], jj = j + dir[k + 1];if (ii < 0 || ii >= n || jj < 0 || jj >= m) continue;if (g[ii][jj] == c) f = false;}if (f) return c;}return 0;};for (int i = 0; i < n; ++ i) {for (int j = 0; j < m; ++ j) {if (g[i][j]) continue;int c = check(i, j);int sz = 0;while (j + sz < m && i + sz < n && check(i, j + sz) == c) ++ sz;-- sz;for (int ii = i; ii <= i + sz; ++ ii)for (int jj = j; jj <= j + sz; ++ jj)g[ii][jj] = c;}}for (int i = 0; i < n; ++ i, std::cout << '\n') for (int j = 0; j < m; ++ j)std::cout << char(g[i][j] - 1 + 'A');
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);int _ = 1;// std::cin >> _;while (_ --)solve();return 0;
}
相关文章:
构造+贪心,CF 432E,Square Tiling
一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 432E - Codeforces 二、解题报告 1、思路分析 很简单的一个构造题 考虑字典序从左到右从上到下,所以我们正常遍历 对于当前格子如果空闲,那么找到一个能填的最小字符 然…...
【Linux】任务管理
这个任务管理(job control)是用在bash环境下的,也就是说:【当我们登录系统获取bashshell之后,在单一终端下同时执行多个任务的操作管理】。 举例来说,我们在登录bash后,可以一边复制文件、一边查…...
计算机网络——常见问题汇总
1. introduction 1.1 Explain what a communication protocol is and why its important. A communication protocol is a set of rules and conventions(公约) that govern(统治) how data is transmitted and received between devices(设备), systems, or entities in a ne…...
Linux的世界 -- 初次接触和一些常见的基本指令
一、Linux的介绍和准备 1、简单介绍下Linux的发展史 1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的…...
[AI 大模型] Meta LLaMA-2
文章目录 [AI 大模型] Meta LLaMA-2简介模型架构发展新技术和优势示例 [AI 大模型] Meta LLaMA-2 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yYHlT342-1720705768360)(https://i-blog.csdnimg.cn/direct/9ddc783e01bf48c3bc784a584339003f.jpeg…...
Python3.6.6 OpenCV 将视频中人物标记或者打马赛克或加图片并保存为不同格式
1、轻松识别视频人物并做出标记 需安装face_recongnition与dlib,过程有点困难,还请网上查找方法 import face_recognition import cv2 #镜像源 -i https://pypi.mirrors.ustc.edu.cn/simple # 加载视频 video_file E:\\videos\\1.mp4 video_capture …...
Readiris PDF Corporate / Business v23 解锁版安装教程 (PDF管理软件)
前言 Readiris PDF Corporate / Business 是一款高性能的 OCR(光学字符识别)软件,能够帮助用户将纸质文档、PDF 文件或图像文件转换为可编辑和可搜索的电子文本。该软件提供专业级的功能和特性,非常适合企业和商业使用。使用 Rea…...
.NET MAUI开源架构_2.什么是 .NET MAUI?
1.什么是.NET MAUI? .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。使用 .NET MAUI,可从单个共享代码库开发可在 Android、iOS、macOS 和 Windows 上运行的应用。 .NET MAUI 是一款…...
认知偏差知识手册
The Connector 每周会选取我从信息流里获取的有价值内容,包括 AI 探索专题、Github 开源库推荐、工具介绍和一些文章书籍等,目标是链接互联网上的优质内容,获得更多的灵感和知识,从而激发彼此的创造力。 AI 探索 主流推理框架在…...
SpringBoot后端代码基本逻辑
数据持久化(Dao---Entity---mapper) 配置(application.yml) server:port: 10086 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/wiki?useUnicodetrue&characterEnco…...
Python学生信息管理系统的设计与实现
在本篇博客中,我们将深入探讨一个基于Python的简单学生信息管理系统的设计与实现过程。这个系统允许用户执行诸如添加、删除、修改和查询学生信息等操作。我们将逐步解析代码,理解其中的关键概念和编程实践。 1. 系统概述 该系统由几个核心功能组成&am…...
最优雅的PHP框架 Laravel
Laravel 之所以被称为最优雅的 PHP 框架,是因为它在设计和功能上做了很多独特的创新,极大地提高了开发效率和代码的可维护性。以下是 Laravel 受欢迎的主要原因: 良好的文档和社区支持 Laravel 有详尽的官方文档,涵盖了框架的所有功能和用法。此外,Laravel 社区非常活跃…...
log4j2的日志框架(详细,springboot和异步日志的实现)
目录 log4j2的介绍 Log4j2的性能 SpringBoot中的使用Log4j2 log4j2的进阶--异步日志 AsyncAppender方式 AsyncLogger方式 log4j2的介绍 Apache Log4j 2是对Log4j的升级版,参考了logback的一些优秀的设计,并且修复了一些问题,因此带 来…...
taocms 3.0.1 本地文件泄露漏洞(CVE-2021-44983)
前言 CVE-2021-44983 是一个影响 taoCMS 3.0.1 的远程代码执行(RCE)漏洞。该漏洞允许攻击者通过上传恶意文件并在服务器上执行任意代码来利用这一安全缺陷。 漏洞描述 taoCMS 是一个内容管理系统(CMS),用于创建和管…...
SpringBoot实战:处理全局异常
1. 导入springmvc依赖 2.定义全局异常处理类 //定义全局异常处理器,可捕获控制层抛出的异常 ControllerAdvice public class GlobalExceptionHandler {//当控制层抛出Exception异常时会被该方法捕获,并执行该方法ExceptionHandler(Exception.class)Res…...
pdf只要前几页,pdf中只要前几页怎么处理
在处理pdf文件时,我们有时只需要其中的一页或几页,而不是整个文档。那么,如何快速且高效地从pdf中提取单独的一页呢?本文将为你揭示几种简单易行的方法,让你轻松实现这一目标。 使用 “轻云处理pdf官网” 打开 “轻云…...
实变函数精解【4】
文章目录 说明点集与测度开集的极限点集定义与解释开集的导集特性示例结论 导集一、定义二、特点三、性质四、应用五、总结 边界点与聚点的区别一、定义二、性质与区别三、结论 有界点集与测度有界点集的测度不一定有限分析原因结论注意事项 测度有限的点集,不一定有…...
【BUG】Python3|COPY 指令合并 ts 文件为 mp4 文件时长不对(含三种可执行源代码和解决方法)
文章目录 前言源代码FFmpeg的安装1 下载2 安装 前言 参考: python 合并 ts 视频(三种方法)使用 FFmpeg 合并多个 ts 视频文件转为 mp4 格式 Windows 平台下,用 Python 合并 ts 文件为 mp4 文件常见的有三种方法: 调用…...
AI克隆声音,基于函数计算部署GPT-Sovits语音生成模型
阿里云的基于函数计算部署GPT-Sovits语音生成模型 可以直接文字转语音,也可以上传一段自己的语音,根据你上传的语音进行语音播报。 一、打开阿里云的函数计算 https://developer.aliyun.com/adc/scenario/808348a321844a62b922187d89cd5077 还是 函数…...
DP讨论——建造者模式
学而时习之,温故而知新。 敌人出招(使用场景) 组合关系中,如果要A对象创建B对象,或者要A对象创建一堆对象,这种是普遍的需求。 你出招 这种适合创建者模式,我感觉也是比较常见的。 构造函数…...
中国象棋AlphaZero实战指南:从零开始构建超人类棋力AI
中国象棋AlphaZero实战指南:从零开始构建超人类棋力AI 【免费下载链接】ChineseChess-AlphaZero Implement AlphaZero/AlphaGo Zero methods on Chinese chess. 项目地址: https://gitcode.com/gh_mirrors/ch/ChineseChess-AlphaZero 想要打造一个能击败业余…...
猫抓插件:革新性浏览器资源捕获工具,让媒体下载效率倍增
猫抓插件:革新性浏览器资源捕获工具,让媒体下载效率倍增 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代,如何高效获取网页中的视频、音频和图…...
AutoGen多智能体框架:从协作价值到企业级实践指南
AutoGen多智能体框架:从协作价值到企业级实践指南 【免费下载链接】autogen 启用下一代大型语言模型应用 项目地址: https://gitcode.com/GitHub_Trending/au/autogen 在人工智能快速发展的今天,如何让AI系统像人类团队一样高效协作完成复杂任务&…...
Charticulator:数据可视化的自由创作平台与技术革命
Charticulator:数据可视化的自由创作平台与技术革命 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 当数据分析师面对预设模板无法表达复杂数据关系时…...
热门编程语言全攻略:从入门到职业选手
目录 引言:为什么选择一门“热门”编程语言 1.1 编程语言热度背后的产业逻辑 1.2 初学者如何选择第一门语言 1.3 全栈/进阶者如何扩展技术栈 Python:万能胶水与人工智能首选 2.1 语言定位与核心应用领域 2.2 语法特点:简洁优雅的伪代码 2.3 学…...
别再纠结模型了!用Python+Simulink快速搭建四旋翼无人机仿真(附完整代码)
用PythonSimulink快速搭建四旋翼无人机仿真实战指南 四旋翼无人机开发中最令人头疼的环节,往往不是控制算法设计,而是如何快速搭建一个可靠的仿真环境。我曾见过不少团队在模型选择上耗费数周时间,最终却陷入理论完美主义陷阱——他们反复纠结…...
六边形地理索引的终极指南:H3算法如何革新空间数据分析
六边形地理索引的终极指南:H3算法如何革新空间数据分析 【免费下载链接】h3 Hexagonal hierarchical geospatial indexing system 项目地址: https://gitcode.com/gh_mirrors/h3/h3 你是否曾为处理大规模地理空间数据而头疼?传统的地理索引系统在…...
AB Download Manager终极指南:告别杂乱下载,3步打造高效下载工作流
AB Download Manager终极指南:告别杂乱下载,3步打造高效下载工作流 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager 还在为下载…...
Qt实战:用QTreeWidget打造班级管理系统(含右键菜单完整源码)
Qt实战:用QTreeWidget构建高交互班级管理系统 在Qt框架中,QTreeWidget作为展示层级数据的利器,特别适合教育管理系统的开发需求。不同于简单的列表控件,树形结构能直观呈现班级、年级、学生等多级关系,配合右键菜单可实…...
Nunchaku-flux-1-dev部署避坑指南:解决403 Forbidden错误
Nunchaku-flux-1-dev部署避坑指南:解决403 Forbidden错误 部署Nunchaku-flux-1-dev时遇到403 Forbidden错误?别急,这篇文章手把手带你排查和解决这个常见但棘手的问题。 最近在部署Nunchaku-flux-1-dev时,不少小伙伴反映遇到了403…...


