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);}}
相关文章:
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…...
AJAX 02 案例、Bootstrap框架
AJAX 学习 AJAX 2 综合案例黑马 API01 图书管理Bootstrap 官网Bootstrap 弹框图书管理-渲染列表图书管理-添加图书图书管理-删除图书图书管理 - 编辑图书 02 图片上传03 更换图片04 个人信息设置信息渲染头像修改补充知识点:label扩大表单的范围 AJAX 2 综合案例 黑…...
SinoDB客户端工具dbaccess
类似Oracle的客户端工具sqlplus,Mysql的客户端工具mysql,SinoDB数据库也有自带的命令行客户端工具dbaccess。 dbaccess 识别用户输入,将用户输入的 SQL 语句打包发送给 SinoDB 数据库服务器执行,然后接收服务器的执行结果…...
postman学习
一、如何学习postman工具 1、下载和安装 Postman: 首先,从 Postman 官方网站(https://www.postman.com)下载并安装 Postman 应用程序。 2、了解基本概念: 在开始学习之前,了解一些基本概念,…...
【Linux】初识进程
目录 操作系统是什么 设计操作系统的目的 操作系统的定位 如何理解管理 管理的本质 管理的例子 计算机的管理概念图 操作系统管理逻辑的六字真言 系统调用和库函数的概念 进程 进程的概念 什么是PCB? PCB的主要内容 如何查看进程? 通过系统…...
有关Theano和PyTensor库
根据Github里面的介绍,PyTensor是源于Theano, Theano目前应该已经不再开发了,更新都是很多年前。 因此PyTensor在背景介绍中说 PyTensor is a fork of Aesara, which is a fork of Theano. Theano和PyTensor都是计算相关的库,可以…...
用 Open-Sora 高效创作视频,让创意触手可及
近年来,视频内容以爆炸式增长席卷了我们的生活。从短视频平台到直播带货,视频正成为人们获取信息和娱乐的主要方式。然而,传统视频制作流程往往耗时费力,对于普通用户来说门槛较高。 为了降低视频创作门槛,让更多人享…...
Git版本管理工具
前言: 本文记录学习使用 Git 版本管理工具的学习笔记,通过阅读参考链接中的博文和实际操作,快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: Git使用教程-配置管理 git reset详解-CSDN博客 3、Git使用不完全指南&am…...
微信小程序选择器picker的使用(省市区)
index.wxml picker中的 moderegion模式,这里同element中的select不同的是,不需要自己在绑定数据原,默认就包含了省市区的整体数据 <view class"section"><view class"section__title">省市区选择器</vie…...
std::shared_ptr与std::make_unique在类函数中的使用
在最近学习cartographer算法的时候,发现源码中大量的使用了std::shared_ptr与std::make_unique,对于这些东西之前不是很了解,为了更好的理解源代码,因此简单学习了一下这块内容的使用,在这里简单记个笔记。 std::shar…...
flutter 局部view更新,dialog更新进度,dialog更新
局部更新有好几种方法,本次使用的是 StatefulBuilder 定义 customState去更新对话框内容 import package:flutter/cupertino.dart; import package:flutter/material.dart;class ProgressDialog {final BuildContext context;BuildContext? dialogContext;double _…...
Lombok:@Delegate优化代码利器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、Delegate介绍 二、示例 三、使用场景 四、使用注意事项 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、Delegate介绍 Dele…...
【C语言】对称密码——栅栏的加密和解密
栅栏密码的原理: 栅栏层数n ①把将要传递的信息中的字母交替排成上下n行。 ②再将下面每一行字母排依次在上面一行的后边,从而形成一段密码。 ③例如:栅栏层数为2 明文:THE LONGEST DAY MUST HAVE AN END 加密: …...
一、rv1126开发之视频输入和视频编码
RV1126 H264/HEVC编码流程 一、RV1126编码的流程图: 二、每个代码模块详细讲解 2.1. VI模块的创建 VI模块的初始化:关键在于VI_CHN_ATTR_S结构体,这个结构体是VI设置的结构体。这个结构体的成员变量包括:pcVideoNode࿰…...
4.1 用源文件写汇编代码
汇编语言 1. 源程序 1.1 伪指令 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行伪指令没有对应的机器指令,最终不被CPU所执行伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作 1.2…...
Linux TCP参数——tcp_abort_on_overflow
文章目录 tcp_abort_on_overflow全连接队列是什么?如何改变队列大小?内核源码流程命令查看总结 tcp_abort_on_overflow 英文翻译理解:溢出中止 所以,溢出指的是什么溢出? Linux中会维护socket全连接队列,所…...
jupyter notebook设置代码提示方法
在命令行运行以下代码: pip install jupyter_contrib_nbextensionsjupyter contrib nbextension install --userpip install jupyter_nbextensions_configuratorjupyter nbextensions_configurator enable --user (有时安装第一行后会自动执行第二行&a…...
Linux 一点查询资料
Linux 一点查询资料 Linux101 Linux入门教程 鸟哥的Linux私房菜 Harley Hahn’s Guide to Unix and Linux 文件管理 - cd, pwd, mkdir, rmdir, ls, cp, rm, mv, tar 文件检索 - cat, more, less, head, tail, file, find 输入输出控制 - 重定向, 管道, tee, xargs 文本处理 -…...
如何快速搭建一个完整的vue2+element-ui的项目-二
技术细节-继续配置 提示:你以为这样就完了吗,其实还有很多东西需要我们自己手写的 例如: element-ui的配置样式重置配置src使用的配置elinst配置axios异步请求的二次封转配置语言国际化配置(这个看需求,我这里就不用配置了)vuex的配置mixins的配置开发环…...
多语言LLM的状态:超越英语
多语言大语言模型的发展现状:超越英语 引言 据微软研究院的数据显示,世界上大约88%的语言,即12亿人的母语,缺乏对大型语言模型(LLM)的访问。这是因为大多数LLM都是以英语为中心的,即它们大多是…...
Python OCR实战:pytesseract高级配置与场景化应用指南
1. 为什么需要pytesseract高级配置? 第一次用pytesseract做OCR识别时,我直接调用了最简单的image_to_string()方法。结果遇到模糊图片时识别率惨不忍睹,处理表格文本时更是错漏百出。后来才发现,Tesseract引擎提供了20种参数配置组…...
虎贲等考 AI:以智能赋能学术,做更可靠的全流程论文写作助手
在学术研究与论文写作日益规范化、高效化的今天,从开题、撰写、实证到答辩,每一步都考验着研究者的时间、耐心与专业能力。虎贲等考 AI 智能写作(https://www.aihbdk.com/)作为一款基于人工智能技术的论文写作辅助工具,…...
小白程序员必备:轻松入门攻防技术!
小白程序员必备:轻松入门攻防技术! 本文介绍了逆向工程技术在产品设计、文物修复、军事装备研制等领域的应用特点,并重点推荐360智榜样学习中心的《网络攻防知识库》,适合零基础转型者、开发/运维人员、应届毕业生及安全爱好者学习…...
手把手教你用Wireshark解密TLS流量(附SSLkey.log实战案例)
从零掌握Wireshark解密TLS流量的完整指南 当你在进行网络安全分析或参加CTF比赛时,经常会遇到需要分析加密网络流量的情况。HTTPS作为当前最主流的加密传输协议,其流量通常使用TLS/SSL加密,这给安全分析带来了挑战。本文将带你深入理解TLS解密…...
如何用pyvideotrans实现视频翻译与AI配音:一站式跨语言内容创作指南
如何用pyvideotrans实现视频翻译与AI配音:一站式跨语言内容创作指南 【免费下载链接】pyvideotrans Translate the video from one language to another and embed dubbing & subtitles. 项目地址: https://gitcode.com/gh_mirrors/py/pyvideotrans 在全…...
Phi-3-vision-128k-instruct快速入门:Linux常用命令搞定模型部署与管理
Phi-3-vision-128k-instruct快速入门:Linux常用命令搞定模型部署与管理 1. 开篇:为什么选择命令行管理AI模型 对于熟悉Linux的开发者来说,命令行是最直接高效的工具。相比图形界面,命令行操作更轻量、更灵活,特别适合…...
TVA时代企业视觉检测核心痛点突破系列(5)
——TVA系统标准落地与执行技巧在TVA时代,企业视觉检测的标准化是保障产品质量一致性、提升检测效率的核心前提。然而,很多企业在引入TVA系统后,仍面临“标准不一”的痛点——不同质检人员对缺陷的判定标准不同、TVA系统的检测标准与人工判定…...
不只是参数翻译:用‘单位换算’和‘参考系统’思维,重新理解倍福NC编码器设置
从“单位换算”到“坐标系选择”:倍福NC编码器参数的系统化理解框架 第一次接触倍福NC轴编码器参数时,大多数工程师都会面对这样一个困惑:为什么简单的脉冲计数需要如此复杂的参数配置?这背后其实隐藏着一个精妙的系统思维——我们…...
SMUDebugTool:解锁AMD Ryzen处理器潜力的专业调试工具
SMUDebugTool:解锁AMD Ryzen处理器潜力的专业调试工具 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…...
2024年零基础入门Delphi 12开发极速指南
1. 为什么2024年还要学Delphi? 十年前如果有人问我这个问题,我可能会犹豫。但2024年的Delphi 12已经完全不同了——它现在是一个支持Windows/macOS/Linux/iOS/Android五大平台的全栈开发利器。我去年用Delphi 12给客户做了个跨平台库存管理系统ÿ…...
