CF1898C Colorful Grid(构造)

题目链接

题目大意

n 行 m 列 的一个矩阵,每行有m - 1条边,每列有 n - 1 条边。
问一共走 k 条边,能不能从 (1, 1),走到(n, m),要求该路径上,每条边的颜色都是红蓝交替的,可以走重复的边。
输出YES/NO

思路

  • NO的情况

    • 从起点到终点至少要走 n - 1 + m - 1步,若 k < n - 1 + m - 1, 则输出NO
    • 因为每绕一次路,都只能多走偶数步在这里插入图片描述
      所以k - (n - 1 + m - 1),是奇数时,NO
  • 构造方法

    • 因为要红蓝交替,所以不能走回头路
    • 若k == n - 1 + m - 1,直接最短路弄成红蓝交替
    • 若k > n - 1 + m - 1,res = k - (n - 1 + m - 1), res一定是偶数,偶数除以4,要不就能整除,要不就余2
      • 能被整除,就让它,绕着最后一圈转
        在这里插入图片描述

      • 若余2,则先把这两步在开头时消耗掉,剩下的,绕着最后一圈转

      • 在这里插入图片描述

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 20;
char heng[N][N];
char shu[N][N];
void init()
{for (int i = 1; i < N; i ++ ){for (int j = 1; j < N; j ++ ){if (i % 2) shu[i][j] = 'R';else{shu[i][j] = 'B';}if (j % 2 == 0){heng[i][j] = 'R';}else{heng[i][j] = 'B';}}}
}
int main()
{int T; cin >> T;while (T -- ){init();int n, m, k;cin >> n >> m >> k;int res = n - 1 + m - 1;if (res % 2 != k % 2 || k < res){cout << "NO" << endl;continue;}if (heng[1][m - 1] == 'R'){shu[1][m] = 'B';}else{shu[1][m] = 'R';}for (int i = 2; i < n; i ++ ){if (shu[i - 1][m] == 'R'){shu[i][m] = 'B';}else{shu[i][m] = 'R';}}cout << "YES" << endl;int x = (k - res) % 4;if (x == 0){if (shu[n - 1][m] == 'B'){shu[n - 1][m - 1] = 'B';heng[n][m - 1] = 'R';heng[n - 1][m - 1] = 'R';}if (shu[n - 1][m] == 'R'){shu[n - 1][m - 1] = 'R';heng[n][m - 1] = 'B';heng[n - 1][m - 1] = 'B';}}if (x == 2){if (shu[n - 1][m] == 'B'){shu[n - 1][m - 1] = 'B';heng[n][m - 1] = 'R';heng[n - 1][m - 1] = 'R';}if (shu[n - 1][m] == 'R'){shu[n - 1][m - 1] = 'R';heng[n][m - 1] = 'B';heng[n - 1][m - 1] = 'B';}if (heng[1][2] == 'B'){shu[1][1] = 'R'; shu[1][2] = 'R'; heng[2][1] = 'B';}if (heng[1][2] == 'R'){shu[1][1] = 'B'; shu[1][2] = 'B'; heng[2][1] = 'R';}}for (int i = 1; i <= n; i ++ ){for (int j = 1; j < m; j ++ ){cout << heng[i][j] << " " ;}cout << endl;}for (int i = 1; i < n; i ++ ){for (int j = 1; j <= m; j ++ ){cout << shu[i][j] << " " ;}cout << endl;}}return 0;
}

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

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

相关文章

【一文带你掌握Java中方法定义、调用和重载的技巧】

方法的定义和调用 方法的定义 方法&#xff08;method&#xff09;是一段用于实现特定功能的代码块&#xff0c;类似于其他编程语言中的函数&#xff08;function&#xff09;。方法被用来定义类或类的实例的行为特征和功能实现。方法是类和对象行为特征的抽象表示。方法与面向…

十八)Stable Diffusion使用教程:艺术二维码案例

今天说说怎么样使用SD生成艺术二维码。 我们直接上图。 方式有三种,分别如下: 1)方式一:直接 contronet 的tile模型进行控制 使用QRBTF Classic生成你的二维码。 首先输入网址,选择喜欢的二维码样式(推荐第一种就行): 然后选择相应参数,这里推荐最大的容错率,定…

JieLink+智能终端操作平台存在弱口令漏洞

产品简介 捷顺JeLink智能终端操作平台(JSOTC2016 fJeLink)是捷顺历经多年行业经验积累&#xff0c;集智能硬件技术视频分析技术、互联网技术等多种技术融合&#xff0c;基于B/S架构&#xff0c;实现核心业务处理模型(用户中心、投权中心财务中心中心值班室、 运维中心车行客户…

若依框架 新增外键表单组件

外键表单组件 若依框架提供了下拉框组件&#xff0c;但是数据是枚举数据中读取&#xff0c;但是对于外键表单没有提供。定义一个TableTag <template><div><template v-for"(item, index) in options" ><template ><spanv-if"value…

Lua学习笔记 — Table与Metatable(超详细)

01、Table table是lua 中唯一的数据结构&#xff1b;既可以表示 hashtable 也可表示为 array&#xff1b;配合元表可以定制表复杂的功能&#xff08;如实现面对对象编程中的类以及相应继承的功能&#xff09; 数组 arr1 {1,2,"abc"} -- table.insert(table, [pos…

《地理信息系统原理》笔记/期末复习资料(11. GIS的输出与地图可视化)

目录 11. GIS的输出与地图可视化 11.1. GIS的输出 11.1.1. 输出方式 11.1.2. GIS的图形输出设备 11.2. 地图符号 11.2.1. 地图符号的实质 11.2.2. 地图符号的分类 11.2.3. 地图符号的设计要求 11.3. 专题信息表达 11.3.1. 专题地图的基本概念 11.3.2. 专题地图的表示…

2023.12面试题汇总小结

文章目录 Java字节码都包括哪些内容Java双亲委派机制如何打破Java Memory Model是什么synchronized的锁优化是什么CountDownLatch、CyclicBarrier、Semaphore有啥区别&#xff0c;什么场景下使用MySQL MVCC原理MySQL RR隔离级别&#xff0c;会出现幻读吗MySQL的RR隔离级别下&am…

L1-030 一帮一(Python3)

“一帮一学习小组”是中小学中常见的学习组织方式&#xff0c;老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作&#xff0c;即在得到全班学生的排名后&#xff0c;在当前尚未分组的学生中&#xff0c;将名次最靠前的学…

boost graph之基础

结构 属性相关 #mermaid-svg-LUDFVluXTOlnqK0d {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LUDFVluXTOlnqK0d .error-icon{fill:#552222;}#mermaid-svg-LUDFVluXTOlnqK0d .error-text{fill:#552222;stroke:#5522…

微软自带浏览器Edge,无法关闭“保存历史记录网站的屏幕截图”解决方案

微软自带浏览器Edge&#xff0c;无法关闭“保存历史记录网站的屏幕截图”解决方案 吐槽1&#xff1a;Windows自带的Chrome内核版本的浏览器Microsofg Edge刚发布时可谓一股清流&#xff0c;启动速度快&#xff0c;占用内存较小&#xff0c;相信很多人也开始抛弃正代Chrome&…

springboot实战项目之使用AOP技术实现各种角色的鉴权功能

前言 项目开发需求&#xff0c;会员有不同的角色&#xff0c;不同的角色被赋予不同的权限&#xff0c;这就需要对会员的操作进行鉴权处理。 方案 采用aop&#xff0c;可实现满足这种需求&#xff0c;创建匿名类。对外提供接口的时候都会拦截&#xff0c;这种会有弊端&#x…

【Spring】08 BeanNameAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架为开发者提供了丰富的扩展点&#xff0c;其中之一就是 Bean 生命周期中的回调接口。本文将聚焦于其中的一个接口 BeanNameAware&#xff0c;介绍它的作…

Hudi 在 vivo 湖仓一体的落地实践

作者&#xff1a;vivo 互联网大数据团队 - Xu Yu 在增效降本的大背景下&#xff0c;vivo大数据基础团队引入Hudi组件为公司业务部门湖仓加速的场景进行赋能。主要应用在流批同源、实时链路优化及宽表拼接等业务场景。 一、Hudi 基础能力及相关概念介绍 1.1 流批同源能力 与H…

大数据-MapReduce-关于Json数据格式的数据的处理与练习

目录 &#x1f436;16.1 Json是什么&#xff1f; &#x1f436;16.2 Json的语法规则 &#x1f436;16.3 JSON 和 XML &#x1f436;16.4 java中关于json中的jar包 &#x1f959;GSON&#xff1a;由谷歌进行开发 &#x1f959;Fastjson&#xff1a; 由阿里进行开发 &…

go学习redis的学习与使用

文章目录 一、redis的学习与使用1.Redis的基本介绍2.Redis的安装下载安装包即可3.Redis的基本使用1&#xff09;Redis的启动&#xff1a;2&#xff09;Redis的操作的三种方式3&#xff09;说明&#xff1a;Redis安装好后&#xff0c;默认有16个数据库&#xff0c;初始默认使用0…

最流行的视频创作者

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 题目描述 给你两个字符串数组 creators 和 ids &#xff0c;和一个整数数组 views &#xff0c;所有数…

C语言之实现贪吃蛇小游戏篇

text.c #define _CRT_SECURE_NO_WARNINGS 1 #include "snake.h" void test() {int ch 0;do{Snake snake { 0 };//创建了贪吃蛇//1. 游戏开始 - 初始化游戏GameStart(&snake);//2. 游戏运行 - 游戏的正常运行过程GameRun(&snake);//3. 游戏结束 - 游戏善后…

2023-12-15 Fri

坚持打卡第47天 健康方面&#xff08;非常重要‼️&#xff09; 每天运动&#xff0c;有氧和拉伸为主&#xff0c;运动十几分钟即可✅&#xff08;1h&#xff09;零点之前睡觉早上八点之前起床✅ 学习方面 力扣每日一题✅每天把当天APP上的单词复习完&#xff0c;并复习至少…

java导出word使用模版与自定义联合出击解决复杂表格!

1. 看一下需要导出什么样子的表格 如图所示&#xff0c;这里的所有数据行都是动态的&#xff0c;需要根据查询出来的数据循环展示。 如果只是这样的话&#xff0c;使用freemarker应该都可以搞定&#xff0c;但是他一列中内容相同的单元格&#xff0c;需要合并。 这对于表格样式…