G - Find a way

 


题目分析

        1.双重bfs,遍历两个起点求最短路再计算总和即可

        2.唯一的坑点在于对于一个KFC,两人中可能有一个到不了,所以还要对到不了的点距离做处理


#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 220;struct pos{int y, x;
}Y, M;char g[N][N];
bool vis[N][N];
int disy[N][N];
int dism[N][N];
int t1, t2;int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};void bfs1()
{memset(vis, 0, sizeof vis);queue<pos> q;q.push(Y);vis[Y.y][Y.x] = 1;while(!q.empty()){pos temp = q.front(); q.pop();for(int i = 0; i < 4; i++){int a = temp.x + dx[i]; int b = temp.y + dy[i];if(a < 1 || b < 1 || a > t2 || b > t1) continue;if(!vis[b][a] && g[b][a] != '#'){vis[b][a] = 1;q.push({b, a});disy[b][a] = disy[temp.y][temp.x] + 1;}}}for(int i = 1; i <= t1; i++){for(int j = 1; j <= t2; j++){if(disy[i][j] == 0) disy[i][j] = 1e7;}}
}void bfs2()
{memset(vis, 0, sizeof vis);queue<pos> q;q.push(M);vis[M.y][M.x] = 1;while(!q.empty()){pos temp = q.front(); q.pop();for(int i = 0; i < 4; i++){int a = temp.x + dx[i]; int b = temp.y + dy[i];if(a < 1 || b < 1 || a > t2 || b > t1) continue;if(!vis[b][a] && g[b][a] != '#'){vis[b][a] = 1;q.push({b, a});dism[b][a] = dism[temp.y][temp.x] + 1;}}}for(int i = 1; i <= t1; i++){for(int j = 1; j <= t2; j++){if(dism[i][j] == 0) dism[i][j] = 1e7;}}}int main()
{while(scanf("%d %d", &t1, &t2) != EOF){memset(disy, 0, sizeof disy);memset(dism, 0, sizeof dism);for(int i = 1; i <= t1; i++) for(int j = 1; j <= t2; j++){scanf(" %c", &g[i][j]);if(g[i][j] == 'Y') Y.x = j, Y.y = i;else if(g[i][j] == 'M') M.x = j, M.y = i;}bfs1();bfs2();int ans = 999;for(int i= 1; i <= t1; i++){for(int j= 1; j <= t2; j++){if(g[i][j] == '@') ans = min(ans, disy[i][j] + dism[i][j]);}}printf("%d\n", ans * 11);}}

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

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

相关文章

Linux/Ubuntu/Debian从控制台启动程序隐藏终端窗口

如果你想从终端运行应用程序但隐藏终端窗口. 你可以这样做&#xff1a; 在后台运行&#xff1a; 你只需在命令末尾添加一个与号 (&) 即可在后台运行它。 例如&#xff1a; your_command &将 your_command 替换为你要运行的命令。 这将在后台启动该命令&#xff0c…

Three.js基础入门介绍——【毕业季】Three.js动态相册

前言 岁月匆匆&#xff0c;又是一年毕业季&#xff0c;这次做个动态相册展示图片&#xff0c;放些有意思的内容&#xff0c;一起回忆下校园生活吧。 预期效果 相册展示和点选切换&#xff0c;利用相机旋转和移动来实现一个点击切图平滑过渡的效果。 实现流程 基本流程 1、搭…

【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

【学习】软件测试行业未来的发展趋势预测

近年来&#xff0c;随着中国数字经济的蓬勃发展&#xff0c;软件测试行业也迎来了新的春天。从早期的手工测试到自动化测试&#xff0c;再到持续集成和持续交付&#xff0c;中国的软件测试行业经历了快速的发展和变革。各行各业均对软件测试提出了更高的要求&#xff0c;尤其在…

将数据转换成xml格式的文档并下载

现在有一个实体类对象的集合&#xff0c;需要将它们转换为xml文档&#xff0c;xml文档就是标签集合的嵌套&#xff0c;例如一个学生类&#xff0c;有姓名、年龄等&#xff0c;需要转换成一下效果&#xff1a; <student><age>14</age><name>张三</na…

【Java】Oracle发布Java22最新版本

甲骨文&#xff08;ORACLE&#xff09;已经于2023年3月19日正式发布了最新版本的JDK&#xff0c;版本号&#xff1a;22 根据官方声明&#xff0c;Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面进行了数千种改进&#xff0c;包括对Java 语言、其API 和性能&#xff0c;以…

docker 哲学 - 网络桥接器、容器网络接口 、容器间的通信方式

1、解释 docker0 veth eth 2、vethXX 和 ethXX 是肯定一一对应吗 比如 eth1 对应 veth1 3、如果 A容器使用 默认创建方式 。定义他内部网络为 eth0&#xff0c;容器B使用 --network 连上 已创建的网络 172.89.2.1 。此时假设 B的 ip是 172.89.2.2 &#xff0c;容器网络接口是 e…

Godot 学习笔记(4):一切以场景为中心

文章目录 前言场景搭建新建子场景最简单的按钮事件 手动控制场景手动加载场景添加多个场景对象更快速的获取脚本对象 删除多个场景对象脚本命名的问题 总结 前言 Godot的场景是C#与Godot最后的中间连接。我们解决了场景的加载&#xff0c;我们基本可以保证C#和godot之间的彻底…

C++初阶:vector相关练习

目录 1. 只出现一次的数2. 杨辉三角3. 删除有序数组中的重复项4. 只出现一次的数II5. 只出现一次的数III6. 数组中出现次数超过一半的数7. 电话号码的字母组合&#xff08;多叉树遍历&#xff09; 1. 只出现一次的数 题目信息&#xff1a; 题目链接&#xff1a; 只出现一次的数…

工程信号的去噪和(分类、回归和时序)预测

&#x1f680;【信号去噪及预测论文代码指导】&#x1f680; 还为小论文没有思路烦恼么&#xff1f;本人专注于最前沿的信号处理与预测技术——基于信号模态分解的去噪算法和深度学习的信号&#xff08;回归、时序和分类&#xff09;预测算法&#xff0c;致力于为您提供最精确、…

ruoyi-nbcio-plus基于vue3的flowable增加开始节点的表单绑定修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

java.lang.String final

关于String不可变的问题&#xff1a;从毕业面试到现在&#xff0c;一个群里讨论的东西&#xff0c;反正码农面试啥都有&#xff0c;这也是我不咋喜欢面试代码&#xff0c;因为对于我而言&#xff0c;我并不喜欢这些面试。知道或不知道基本没啥含氧量&#xff0c;就是看看源代码…

蓝桥杯刷题(十三)

1.煤球数目 代码 cnt ans 0 start 1 a [] while cnt<100:ansstartstart 1t ansstartcnt1a.append(ans) print(sum(a))2.奖券数目 代码 def f(x)->bool:while x:if x%104:return Falsex//10return True ans 0 for i in range(10000,100000):if f(i):ans1 print(a…

二叉搜索树(二叉排序树)(含力扣相关题及题解)

文章目录 二叉搜索树&#xff08;二叉排序树&#xff09;1、二叉搜索树概念2、二叉搜索树的操作2.1、二叉搜索树的查找2.2、二叉搜索树的插入2.2、二叉树的删除 3、二叉搜索树的实现&#xff08;含递归版本&#xff09;4、二叉搜索树的应用4.1、K模型4.2、KV模型 5、二叉搜索树…

C语言例:设 int x; 则表达式 (x=4*5,x*5),x+25 的值

代码如下&#xff1a; #include<stdio.h> int main(void) {int x,m;m ((x4*5,x*5),x25);printf("(x4*5,x*5),x25 %d\n",m);//x4*520//x*5100//x2545return 0; } 结果如下&#xff1a;

拌合楼管理系统开发(十) 不谈技术只谈管理之大宗物资虚假贸易

前言:不谈技术只谈管理 大宗物资往往都是虚假贸易的重灾区,多年前规模就是面子的口号下,一大批国央企挖空心思做大规模,开展了一大批虚假贸易,同时为了面上的合规性,往往会有三方甚至更多方进入到整个链条中,钱货在这个链条中流转,甚至有些就是钱在流转,如果整个链条有一个环节…

电视盒子哪款好?数码小编分享电视盒子品牌排行榜

电视盒子是我们使用最多的数码产品自已&#xff0c;在挑选电视盒子这块超多朋友踩过雷&#xff0c;广告多&#xff0c;频繁卡顿&#xff0c;收费节目多&#xff0c;究竟电视盒子哪款好&#xff1f;本期小编要分享的就是目前最值得入手的电视盒子品牌排行榜&#xff0c;想买电视…

数据结构中单向链表(无头)的学习

一.数据结构 1.定义 一组用来保存一种或者多种特定关系的数据的集合&#xff08;组织和存储数据&#xff09; 程序的设计&#xff1a;将现实中大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中&#xff0c; 并在此基础上实现某个特定的功能的操…

SpringBoot-03 | SpringBoot自动配置

SpringBoot-03 | SpringBoot自动配置 原理分析代码示例源码剖析SpringBootConfiguration&#xff1a;组合注解&#xff0c;标记当前类为配置类ComponentScanEnableAutoConfigurationImport加载spring.factoriesrun初始化加载spring.factoriesspring.factories中的钩子类 网上盗…

58、服务攻防——应用协议设备KibanaZabbix远控向日葵VNCTeamViwer

文章目录 vnc默认端口&#xff1a;5900 or 5902&#xff0c;hydra支持vnc破解。VNC有三种模式&#xff1a;使用vnc密码、windows密码、无密码。 teamviewer、向日葵都是使用之前爆过漏洞进行测试。 zabbix&#xff1a;监控系统&#xff0c;蓝队部署平台。zabbix页面如下&#…