题意:

给出一个n*m的图,‘.’可以走,‘#’不能走,图中有字母‘a’~‘z’,每个时间每个字母会向四联通的四个格子扩散,如果两个字母相遇,那个格子会变成‘*’,问最后的图长什么样。

思路:

从每个字母开始搜,记录一下就好了。

代码:

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<string>
#include<map>
#include<iostream>
#include<algorithm>
#include<sstream>
#include<climits>
#include<queue>using namespace std;int n,m;
char maze[505][505];
int vis[505][505];
int a[]= {1,-1,0,0};
int b[]= {0,0,1,-1};struct Point
{int x,y,r;char ans;Point(int xx,int yy,char anss,int rr){x=xx;y=yy;ans=anss;r=rr;}
};void bfs()
{queue<Point> q;for(int i=1; i<=n; i++)for(int j=1; j<=m; j++)if(maze[i][j] >= 'a' && maze[i][j] <= 'z')q.push(Point(i,j,maze[i][j],0));while(!q.empty()){Point t = q.front();q.pop();int x = t.x;int y = t.y;int r = t.r;char ans = t.ans;if(maze[x][y] == '*') continue;for(int i=0; i<4; i++){if(x + a[i] <= n && x + a[i] >= 1 && y + b[i] >= 1 && y + b[i] <= m){if(maze[x + a[i]][y + b[i]] == '.'){vis[x + a[i]][y + b[i]] = r + 1;maze[x + a[i]][y + b[i]] = ans;q.push(Point(x + a[i],y + b[i],ans,r+1));}else{if(maze[x + a[i]][y + b[i]] >= 'a' || maze[x + a[i]][y + b[i]] <= 'z'){if(vis[x + a[i]][y + b[i]] ){if(vis[x + a[i]][y + b[i]] == r + 1 && ans != maze[x + a[i]][y + b[i]]){maze[x + a[i]][y + b[i]] = '*';}}}}}}}
}int main()
{int t;cin>>t;while(t--){scanf("%d%d",&n,&m);for(int i=1; i<=n; i++)scanf("%s",maze[i] + 1);memset(vis,0,sizeof(vis));bfs();for(int i=1; i<=n; i++)printf("%s\n",maze[i]+1);cout<<endl;}return 0;
}

uvalive5992(搜索)相关推荐

  1. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、

    1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...

  2. 浅显易懂 Makefile 入门 (03)— 目标文件搜索(VPATH 和 vpath 的区别和使用)、隐含规则

    1. 目标文件搜索(VPATH和vpath) 如果需要的文件是存在于不同的路径下(即源文件与 Makefile 文件不在同一个路径下),在编译的时候就用到了 Makefile 中为我们提供的目录搜索文 ...

  3. Windows10自带搜索增强设置

    操作系统:Windows10 前言:Windows自带的搜索速度非常慢,因此有人借助Everything等索引软件进行搜索,能够显著提升搜索速度.但是Windows自带的搜索在进行一些设置以后也能达到 ...

  4. listary 指定目录搜索_everything

    20211009 https://zhuanlan.zhihu.com/p/225414423 listary详细使用 20210710 everything搜索文件,结果出现相同的2个重复情况,路径 ...

  5. LeetCode简单题之二叉搜索树中的搜索

    题目 给定二叉搜索树(BST)的根节点 root 和一个整数值 val. 你需要在 BST 中找到节点值等于 val 的节点. 返回以该节点为根的子树. 如果节点不存在,则返回 null . 示例 1 ...

  6. Hexo集成Algolia实现搜索功能

    2年前搭建的hexo博客好久没有维护了,一看 hexo 以及先前使用 butterfly 主题已经更新好几个版本了,看介绍在速度性能上有了很大的提高,于是打算给 hexo 升个级,整理整理翻翻新.通过 ...

  7. 目标识别的选择性搜索

    目标识别的选择性搜索 Selective Search for Object Recognition 论文地址: https://ivi.fnwi.uva.nl/isis/publications/b ...

  8. 2021年大数据ELK(四):Lucene的美文搜索案例

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 美文搜索案例 一.需求 二.准备工作 1.创建IDEA项目 2. ...

  9. [C] 深度优先搜索解决连通块/染色问题——求岛的个数

    本文介绍用DFS解决连通块个数问题 有关dfs的介绍见另外一篇:不撞南墙不回头--深度优先搜索 例题 宝岛探险 题目描述 一个小岛由一个主岛和一些复附属岛屿组成,该岛使用一个二维矩阵表示,其中数字表示 ...

最新文章

  1. 「AutoML」激活函数如何进行自动学习和配置
  2. option:contains后面加变量_什么是配置环境变量,配置以后有什么作用呢?
  3. 2018年香港私楼落成量达2.1万个 创14年新高
  4. WPF ChromiumWebBrowser 网页背景透明
  5. python代码生成可执行程序_Python—脚本程序生成exe可执行程序(pyinstaller)
  6. 十大建筑中的数学之美
  7. python random库怎么用_Python || Random库的使用
  8. 物联网:不要幻想今年会突飞猛进,但行业依然亢奋
  9. ORACLE 10G RAC 10.2.0.5 删除节点
  10. linux的文件permission需要设置,否则会使用as3的urlrequest失败
  11. 影响计算机关键性能参数测试研究,基于Labview软件的ADC计算机辅助测试系统设计...
  12. C语言入门130题-OJ
  13. 【报告分享】2021年中国商业物联网行业研究报告-艾瑞咨询(附下载)
  14. 集成谷歌地图不显示的问题
  15. 使用原生js 监听video 当前播放时间和是否点击了播放或者暂停按钮
  16. Ubuntu暂时无法解析域名“cn.archive.ubuntu.com”
  17. Python让你的终端输出变得五彩斑斓
  18. 在Windows系统中安装CentOS系统和gcc
  19. 保障信息安全不违规,App应满足哪些法律规定
  20. Android Studio——Spinner 修改字体颜色和字体大小

热门文章

  1. 燃烧学往年精选真题解析 2018-01-01
  2. 深入探讨!Batch 大小对训练的影响
  3. 不共线三点确定特征平面并求解平面系数
  4. Delphi中Tobject与Variant之间的转换
  5. sqlserver中时间格式的字符串传递时的注意事项
  6. 使用互斥元保护共享数据-lock_guard
  7. python形参实参
  8. python基础——变量和数据类型及常见类型转换函数
  9. C 语言内联汇编介绍
  10. python 中用什么键缩进 —— tab 还是空格?