news 2026/9/3 3:42:15

洛谷P1825 [USACO11OPEN] Corn Maze S

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷P1825 [USACO11OPEN] Corn Maze S

题目描述

link

思路

如果没有传送门的话,这就是一个 BFS 板子题,但是传送门该如何处理呢?

大概就是更新四方向的时候,加上一个是否为传送门的判断,是传送门的话就传过去

细节0

参考文献

传送门可以多次经过,例如

##=## ##.## ##A## #@.## ##### ##A.# #####

细节1

传送操作不能连续使用,即,传送一次之后,必须通过非传送方式移动至少一步才能再次进行传送。

看下面这个例子:

12345 1 ##=## 2 ##.## 3 ##B## 4 #AB## 5 ##.A# 6 ###@#

( 5 , 4 ) (5,4)(5,4)传送到( 4 , 2 ) (4,2)(4,2)之后,不能再回到( 5 , 4 ) (5,4)(5,4),但是可以先走一步到( 4 , 3 ) (4,3)(4,3),然后再传送

代码

#include<iostream>#include<cstdio>#include<vector>#include<queue>usingstd::queue;usingstd::vector;usingstd::pair;structnode{intx,y,cnt;};constintdx[]={-1,0,1,0};constintdy[]={0,-1,0,1};constintN=305;intn,m;charc[N][N];intsx,sy,ex,ey;vector<pair<int,int>>doors[26];//每个字母对应的两个传送门坐标boolvis[N][N];pair<int,int>getdoor(intx,inty){//传送过去后的坐标autopii=doors[c[x][y]-'A'][0];if(pii==std::make_pair(x,y))returndoors[c[x][y]-'A'][1];returnpii;}intbfs(){queue<node>q;q.push({sx,sy,0});vis[sx][sy]=true;while(q.size()){node ff=q.front();q.pop();if(ff.x==ex&&ff.y==ey)returnff.cnt;for(inti=0;i<4;i++){intxx=ff.x+dx[i],yy=ff.y+dy[i];if(xx<1||xx>n||yy<1||yy>m||c[xx][yy]=='#'||vis[xx][yy])continue;if(isupper(c[xx][yy])){autopii=getdoor(xx,yy);intxxx=pii.first,yyy=pii.second;q.push({xxx,yyy,ff.cnt+1+0});//+1是到传送门,+0是传送}else{vis[xx][yy]=true;q.push({xx,yy,ff.cnt+1});}}}return-1;}intmain(){scanf("%d%d\n",&n,&m);for(inti=1;i<=n;i++){scanf("%s",c[i]+1);for(intj=1;j<=m;j++){if(c[i][j]=='@'){sx=i;sy=j;}elseif(c[i][j]=='='){ex=i;ey=j;}elseif(isupper(c[i][j]))doors[c[i][j]-'A'].emplace_back(i,j);}}printf("%d",bfs());return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 0:20:31

Hunyuan-MT-7B-WEBUI前端优化:WebSocket实现实时交互体验

Hunyuan-MT-7B-WEBUI前端优化&#xff1a;WebSocket实现实时交互体验 1. 背景与问题分析 随着大模型在多语言翻译场景中的广泛应用&#xff0c;用户对交互体验的要求也逐步提升。Hunyuan-MT-7B作为腾讯开源的高性能翻译模型&#xff0c;支持包括日语、法语、西班牙语、葡萄牙…

作者头像 李华
网站建设 2026/9/3 3:58:36

DCT-Net模型版权保护:数字水印技术应用

DCT-Net模型版权保护&#xff1a;数字水印技术应用 1. 引言&#xff1a;AI生成内容的版权挑战与应对 随着深度学习技术的发展&#xff0c;基于AI的人像卡通化服务正迅速普及。DCT-Net作为ModelScope平台上表现优异的图像风格迁移模型&#xff0c;能够将真实人像高效转换为高质…

作者头像 李华
网站建设 2026/9/3 1:22:56

嵌入式学习!(一)C++学习-模板(20)-26/1/19

模板1、函数模板通用函数&#xff0c;返回值和形参类型不具体制定&#xff0c;用一个虚拟的类型来代表。语法&#xff1a; template<typename T>template -- 声明创建模板typename -- 表明其后面的符号是一种数据类型&#xff0c;可以用class代替T -- 通用的数据类型&…

作者头像 李华
网站建设 2026/9/3 4:50:53

《干货满满!AI提示系统视觉设计原则,提示工程架构师亲授》

干货满满&#xff01;AI提示系统视觉设计原则&#xff0c;提示工程架构师亲授 一、引言&#xff1a;为什么你的提示总像“对牛弹琴”&#xff1f; 1. 一个扎心的问题&#xff1a;你有没有过这样的经历&#xff1f; 花了半小时写提示&#xff0c;把需求翻来覆去改了三遍&…

作者头像 李华
网站建设 2026/9/2 21:01:46

开源声纹识别新选择:CAM++多场景落地实战指南

开源声纹识别新选择&#xff1a;CAM多场景落地实战指南 1. 引言 随着人工智能技术的不断演进&#xff0c;说话人识别&#xff08;Speaker Verification&#xff09;在身份认证、智能客服、安防监控等场景中展现出巨大的应用潜力。然而&#xff0c;许多现有方案存在部署复杂、…

作者头像 李华