CodeForces..李华和迷宫.[简单].[找规律]

news/2024/12/28 15:06:59/

题目描述:


题目解读:

存在矩阵迷宫n×m,(r,c)表示从顶部开始的第r行和左起第c列。

如果两单元格共享一个边,则是相邻的。路径是相邻空单元格的序列。

每个单元格初始状态都为空。对于从(x1,y1)到(x2,y2),李华可以选择一些单元格(非(x1,y1),(x2,y2))设置一些障碍物,使得没有路径可以从(x1,y1)到(x2,y2)。

求放置障碍物的最小个数。

输入迷宫大小,以及(x1,y1),(x2,y2)的值。

输出障碍物的最小个数。


解题思路:

想要阻止(5,1)到(3,6)只需要将(5,1)围困起来即可,围堵(3,6)耗费障碍数太多。

比如(1,1)到(3,2),显然围困(1,1)符合要求,围困(3,2)耗费不是最小。

所以要求最小障碍数,其实把起点或者终点围困起来即可

然后需要先根据矩阵迷宫大小,判断起终点哪一个被围困所耗费障碍数最小

(如果矩阵够小,比如2x2矩阵,(1,1)到(2,2)就只需要一个障碍,但是题目所给矩阵行列数大于4,不用考虑该特殊情况)

点的横纵坐标都贴边,围堵该点的最小障碍数为2;

横纵坐标有一个贴边,围堵该点的最小障碍数为3;

横纵坐标都不贴边,围堵该点的最小障碍数为4。

比较围堵两点各自所需的障碍数,输出最小值即为所求。


 代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>int Result(int a, int b,int n,int m) { //a,b为横纵坐标,n,m为矩阵大小if (a == 1 && b == 1 || a == n && b == 1 || a == 1 && b == m || a == n && b == m) {//点在四个角上return 2;}else if (a == 1 || b == 1 || a == n || b == m) {return 3;}else return 4;
}void Solve() {int n,m; scanf("%d%d", &n, &m);int x1, x2, y1, y2;scanf("%d%d%d%d", &x1, &y1, &x2, &y2);printf("%d\n", Result(x1, y1, n, m) < Result(x2, y2, n, m) ? Result(x1, y1, n, m) : Result(x2, y2, n, m));return;
}int main() {int t;scanf("%d", &t);while (t--) Solve();return 0;
}

遇到的错误:


http://www.ppmy.cn/news/105652.html

相关文章

【Python】Python中那些功能强大的库

目录 引言 1. NumPy 2. Pandas 3. Matplotlib 4. SciPy 5. Scikit-learn 6. TensorFlow 7. PyTorch 8. Keras 9. OpenCV 总结 引言 Python是一种广泛使用的编程语言&#xff0c;它的强大之处不仅在于语言本身的简洁和易读性&#xff0c;还在于其丰富的生态系统。Python生…

中创“六一”公益关爱活动 | 慈善守护童心,爱心筑梦未来

每一个孩子都是一朵花 有的盛开在春天&#xff0c;有的绽放在夏天 每一朵花&#xff0c;都有与众不同的美好 年年盛夏&#xff0c;如约出发&#xff1a; 在第73个“六一国际儿童节”来临之际&#xff0c;中创算力开展“六一公益关爱活动”&#xff0c;希望通过这样一个爱心…

Dropout层的个人理解和具体使用

Dropout层的作用 dropout 能够避免过拟合&#xff0c;我们往往会在全连接层这类参数比较多的层中使用dropout&#xff1b;在训练包含dropout层的神经网络中&#xff0c;每个批次的训练数据都是随机选择&#xff0c;实质是训练了多个子神经网络&#xff0c;因为在不同的子网络中…

Python之字符串(str)基础知识点

strip() 删除指定字符 当token为空时,默认删除空白符(含’\n’,‘\r’,‘\t’,’ )&#xff0c;当非空时&#xff0c;根据指定的token进行删除。 字符的删除又可分为以下几种情况&#xff1a; string.strip(token)&#xff1a;删除string字符串中开头(left)、结尾处(right)的…

《A New General Type-2 Fuzzy Predictive Scheme for PID Tuning》翻译,2021年

《一种新的用于PID整定的通用2型模糊预测方案》 摘要 PID控制器在各种工业应用中被广泛使用。但是&#xff0c;在许多有噪音的问题中&#xff0c;需要强有力的方法来优化PID参数。在本文中&#xff0c;介绍了一种通过模型预测控制和广义 2 型模糊逻辑系统调整比例-积分-微分参数…

【满分】【华为OD机试真题2023B卷 JAVAJS】经典屏保

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 经典屏保 知识点循环迭代编程基础 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: DVD机在视频输出时,为了保护电视显像管,在待机状态会显示“屏保动画”,如下图所示,DVD Logo在屏幕内来回运动,碰到边缘会反弹…

微前端——qiankun配置方法

什么是微前端 微前端是指存在于浏览器中的微服务&#xff0c;其借鉴了微服务的架构理念&#xff0c;将微服务的概念扩展到了前端。 如果对微服务的概念比较陌生的话&#xff0c;可以简单的理解为微前端就是将一个大型的前端应用拆分成多个模块&#xff0c;每个微前端模块可以…

C进阶:数据在内存中的存储(1)

引入&#xff1a; 大家好&#xff0c;感谢大家最近的支持&#xff0c;今天也是开始了C进阶一系列的博文的创作&#xff0c;欢迎大佬们来指点&#xff0c;欢迎来一起沟通&#xff01;&#xff01;&#xff01; 数据类型的介绍 我们都知道&#xff1a;C语言具有以下几种数据类…