我已经,是这个世界上,最幸福的女孩了                                                                         ——《末日时在做什么,有没有空,可以来拯救吗?》

题目:https://www.luogu.org/problem/P1101

这一题开始我居然没看懂这是什么意思,我甚至以为是每一行一个判断,然后直接把我搞懵,直到被“基”房的某位道友:Old_fox 点拨了一下,我才搞懂这道题的意思。

这题主要就是说,一个矩阵,从每一个点,向八个方向去找,看能不能出现yizhong,最后把不能的全部变成*,很简单。

唯一需要注意的就是从每个点出发后,不能中途改变方向,所以——

在搜索外面先确定方向啊!

上代码:

#include<bits/stdc++.h>
using namespace std;
int dx[]={,,-,,-,,-,,};
int dy[]={,,,,-,-,,,-};
char a[][],ans[]={"yizhong"};
bool b[][]={false};
int n,h[][];
void dfs(int z,int x,int y,int t)//没有大循环的搜索,sao吧!
{
int xx=x+dx[z];
int yy=y+dy[z];
if(a[xx][yy]==ans[t])
{
h[t][]=xx;
h[t][]=yy;
if(t==)
for(int i=;i<=;i++)
b[h[i][]][h[i][]]=true;//置为1
else dfs(z,xx,yy,t+);
h[t][]=;
h[t][]=;
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%s",a[i]);
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
if(a[i][j]=='y')//进入搜索的前提是当前值为y
{
for(int k=;k<=;k++)//判断方向
{
if(a[i+dx[k]][j+dy[k]]=='i')
{
h[][]=i;
h[][]=j;
dfs(k,i,j,);//把方向,当前坐标放入搜索
}
}
}
}
}
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
if(b[i][j]==true) printf("%c",a[i][j]);
else printf("*");
}
printf("\n");
}//输出
return ;
}

洛谷 P1101单词方阵的更多相关文章

  1. 洛谷 P1101 单词方阵

    题目链接 https://www.luogu.org/problemnew/show/P1101 题目描述 给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中 ...

  2. 洛谷——P1101 单词方阵

    https://www.luogu.org/problem/show?pid=1101#sub 题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放 ...

  3. 洛谷P1101 单词方阵——S.B.S.

    题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...

  4. 洛谷P1101 单词方阵【暴力】【字符串】

    题目描述 给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向, ...

  5. 洛谷P1101单词方阵

    题目描述 给一n×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的. 摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有 ...

  6. 洛谷P1101 单词方阵

    题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...

  7. 洛谷P1101 单词方阵【DFS】

    给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向 ...

  8. 集训作业 洛谷P1101 单词方阵

    这个题的长度真的有点长,我直接放图片吧 这个题又是一个和谐的搜索,找到yizhong的y就开始8面搜索,遇见正确的字母就继续搜索,不正确就果断放弃,果然又是一个和谐的搜索呢. #include< ...

  9. 洛谷P1101 单词方针

    题目描述 给一 n×n 的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉, ...

随机推荐

  1. 利用hash或history实现单页面路由

    目录 html代码 css代码 JavaScript代码 hash方式 history 方式 浏览器端代码 服务器端 在chrome(版本 70.0.3538.110)测试正常 编写涉及:css, h ...

  2. 帝国CMS(EmpireCMS) v7.5 代码注入分析(CVE-2018-19462)

    帝国CMS(EmpireCMS) v7.5 代码注入分析(CVE-2018-19462) 一.漏洞描述 EmpireCMS7.5及之前版本中的admindbDoSql.php文件存在代码注入漏洞.该漏 ...

  3. React单页面应用使用antd的锚点跳转失效

    首先在react项目中引用antd的锚点 import {Anchor} from 'antd';const { Link } = Anchor; <Anchor> <Link hr ...

  4. idea2019.2安装指南

    先去官网下载idea官网地址 下载UItimate版本点击 DOWNLOAD等待下载完成 点击ideaIU-2019.2.exe一路next      可以在这一步选一下 继续next         ...

  5. spring-boot-plus快速开始 Quick Start(一)

    spring-boot-plus快速开始 Quick Start 1. clone项目到本地 shell script git clone git@github.com:geekidea/spring ...

  6. 常用高效 Java 工具类总结

    一.前言 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码 ...

  7. C语言的输入

    %*2d%d 去掉前面两位 新旧函数 scanf和scanf_s 去掉安全检查 整型 scanf(“%d”,&x); scanf_s(“%d”,&x); 字符型 char ch; sc ...

  8. mybatis对象的插入

    或者: 传入JAVA对象 mapper接口代码: public int findUserList(User user); xml代码: <select id="findUserList ...

  9. 为了完成这个功能,我竟然用5行代码制作了一个EXE可执行程序

    由于用户访问我们某个网址的路径比较长,最后我们确定了在桌面添加快捷入口的方案,让用户点击快捷入口直接进入直接的网址,而且这个快捷入口要带有指定的logo(排除了新建url快捷方式的方案),所以我决定写 ...

  10. odoo视图中常用widget

    widget="statusbar" 头部状态条标签 widget="email" 电子邮件地址标签 widget="selection" ...