BFS题~注意细节就行,对传送门需要特别处理下~

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
const int maxn=51;
struct node
{int x;int y;int ans;
};
queue<node> q;
bool vis[maxn][maxn];
char map[maxn][maxn];
int gox[maxn][maxn],goy[maxn][maxn],fx[maxn],fy[maxn];
int movex[4]={0,0,-1,1},movey[4]={1,-1,0,0};
int n,m;
int main()
{int T;scanf("%d",&T);while(T--){memset(vis,0,sizeof(vis));memset(gox,0,sizeof(gox));memset(goy,0,sizeof(goy));memset(fx,0,sizeof(fx));memset(fy,0,sizeof(fy));scanf("%d%d",&n,&m);for(int i=0;i<=n+1;i++)map[i][0]=map[i][m+1]='#';for(int i=0;i<=m+1;i++)map[0][i]=map[n+1][i]='#';for(int i=1;i<=n;i++){getchar();for(int j=1;j<=m;j++){scanf("%c",&map[i][j]);if(map[i][j]=='L'){q.push((node){i,j});vis[i][j]=1;}else if(map[i][j]>='a'&&map[i][j]<='z'){if(!fx[map[i][j]-'a']){fx[map[i][j]-'a']=i;fy[map[i][j]-'a']=j;}else{gox[i][j]=fx[map[i][j]-'a'];goy[i][j]=fy[map[i][j]-'a'];gox[fx[map[i][j]-'a']][fy[map[i][j]-'a']]=i;goy[fx[map[i][j]-'a']][fy[map[i][j]-'a']]=j;}}}}int ans=-1;while(!q.empty()){node ita=q.front();q.pop();for(int i=0;i<4;i++){int itx=ita.x+movex[i];int ity=ita.y+movey[i];if(map[itx][ity]>='a'&&map[itx][ity]<='z'){int a=itx;int b=ity;itx=gox[a][b];ity=goy[a][b];}if(vis[itx][ity]||map[itx][ity]=='#')continue;if(map[itx][ity]=='Q'){ans=ita.ans+1;break;}q.push((node){itx,ity,ita.ans+1});vis[itx][ity]=1;}if(ans!=-1){while(!q.empty())q.pop();break;}}printf("%d\n",ans);}return 0;
}

Uestc-1002-解救小Q相关推荐

  1. uestc oj 1002 解救小Q

    解救小Q Description 小Q被邪恶的大魔王困在了迷宫里,love8909决定去解救她. 迷宫里面有一些陷阱,一旦走到陷阱里,就会被困身亡:(,迷宫 里还有一些古老的传送阵,一旦走到传送阵上, ...

  2. bzoj3007 解救小云公主

    3007: 解救小云公主 Time Limit: 5 Sec  Memory Limit: 512 MB Submit: 159  Solved: 71 [Submit][Status][Discus ...

  3. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  4. 牛客练习赛81 B. 小 Q 与彼岸花(FWT nlogn做法)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://ac.nowcoder.com/acm/contest/11171/B ...

  5. 剑指Offer——网易笔试之解救小易

    知识要点 首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走AC和 CB才能到达,由于街道很规则,ACB就像一个直角3 ...

  6. HDU 4505 小Q系列故事——电梯里的爱情

    小Q系列故事--电梯里的爱情                                                                                   Tim ...

  7. 腾讯----小Q的歌单

    腾讯----小Q的歌单 文章目录 腾讯----小Q的歌单 一.题目描述 二.分析 方法一:组合 方法二:动规 一.题目描述 小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成 ...

  8. 腾讯----贪吃的小Q

    腾讯----贪吃的小Q 文章目录 腾讯----贪吃的小Q 一.题目描述 二.分析 三.代码 一.题目描述 小Q的父母要出差N天,走之前给小Q留下了M块巧克力.小Q决定每天吃的巧克力数量不少于前一天吃的 ...

  9. HDUOJ-----4510 小Q系列故事——为什么时光不能倒流

    小Q系列故事--为什么时光不能倒流 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

  10. P3700 [CQOI2017]小Q的表格(反演、分块)

    P3700 [CQOI2017]小Q的表格 给定一个大小为n×nn \times nn×n的表格,初始时i,ji, ji,j位置上填的是f(i,j)=i×jf(i, j) = i \times jf( ...

最新文章

  1. Go 学习笔记(42)— Go 标准库之 os/user(获取Uid、Gid、Username、Name、HomeDir、查询用户、查询用户组)
  2. 拒绝了我们的连接请求_职场上,我们该如何巧妙而优雅的拒绝同事忙的请求呢?...
  3. Python Web实战:Python+Django+MySQL实现基于Web版的增删改查
  4. 南京大学计算机学院袁健,袁健(南京大学大气科学学院教授)_百度百科
  5. PyTorch 官方教程发布,限时免费开放!
  6. boost::gil模块计算直方图的测试程序
  7. Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…
  8. linux 启动 x,(1)linux启动过程
  9. 如何向女朋友解释什么是HTTP协议
  10. 花三分钟给女票写一个爬虫,做一回模范男友!
  11. 淘宝宣布改名,网友:改了个寂寞?
  12. CSS中可以让文字在水平和垂直方向上重叠的两个属性
  13. Linux内核分析:recv、recvfrom、recvmsg函数实现
  14. 《Using OpenRefine》翻译~10
  15. SPI全双工模式下收发字节的理解
  16. SPOOLING系统
  17. Python画五角星(turtle初识)
  18. 鸿蒙系统正式版在哪下载,鸿蒙系统正式版安卓app下载-鸿蒙系统正式版最新下载v1.0_求知软件网...
  19. 三种照片保存形式 :JPEG、TIFF、RAW
  20. 51单片机驱动P10单元板

热门文章

  1. 网页摘要优化:Description是什么意思和使用攻略
  2. Java花鼓保养,自行车花鼓正确保养方法
  3. 0.9元实名撸七牛1核1G云服务器
  4. CALLBACK 函数
  5. Java编程练习·编写USB接口模拟计算机启动与关闭
  6. Are you happy?
  7. mysql navicat导入bcp_SQL Server数据导入导出工具BCP详解
  8. Deepin安装过程中无法进入安装引导,求助
  9. SQL Server新建数据库的两种方法
  10. nus计算机科学技术专业,新加坡国立大学计算机硕士专业介绍