洛谷P1101单词方阵
题目描述
给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。
摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。
输出时,将不是单词的字母用*代替,以突出显示单词。例如:
输入: 输出:
8
qyizhong *yizhong
gydthkjy gy******
nwidghji n*i*****
orbzsfgz o**z****
hhgrhwth h***h***
zzzzzozo z****o**
iwdfrgng i*****n*
yyyygggg y******g
输入输出格式
输入格式:
第一行输入一个数n,(1007≤n≤100)。
第二行开始输入n×n的字母矩阵。
输出格式:
突出显示单词的n×n矩阵。
样例#1:
输入:
7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出:
*******
*******
*******
*******
*******
*******
******* 样例#2:
输入:
8
qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg
输出:
*yizhong
gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
这道题挺有趣的我可能写的大部分都是模拟的代码,就是敲的有点烦.
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
const int N=+;
char Map[N][N],keay[N][N];
int startx,starty,n;
int dirx[]={,,-,,,-,,-};//八个方向
int diry[]={,,,-,,,-,-};
bool judge[N][N];
void color(int ,int ,int );
void direct(int, int ,int );
void dfs(int x,int y)
{
for(int i=;i<;i++)
{
int xx=dirx[i]+startx;
int yy=diry[i]+starty;
if(xx<||xx>n||yy<||yy>n) continue;//边界
if(Map[xx][yy]=='i')//找'i'
{
direct(xx,yy,i);
}
}
}
void direct(int x,int y,int f)//f为这个字符串的方向
{
int xx=x,yy=y;
int cnt=;
for(int i=;i<=;i++)//因为只剩下5个没有找到的字母所以只用循环5次
{
xx=xx+dirx[f];
yy=yy+diry[f];
if(i==)
{
if(Map[xx][yy]=='z')
cnt++;
}
if(i==)
{
if(Map[xx][yy]=='h')
cnt++;
}
if(i==)
{
if(Map[xx][yy]=='o')
cnt++;
}
if(i==)
{
if(Map[xx][yy]=='n')
cnt++;
}
if(i==)
{
if(Map[xx][yy]=='g')
cnt++;
}
if(cnt==)
color(xx,yy,f);
}
return;
}
void color(int x,int y,int f)//赋值操作
{
int xx=x;
int yy=y;
judge[x][y]=true;
for(int i=;i<=;i++)//倒着回去赋值
{
xx=xx-dirx[f];
yy=yy-diry[f];
judge[xx][yy]=true;
}
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
cin>>Map[i][j];
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(Map[i][j]=='y')
{
startx=i;starty=j;
dfs(startx,starty);
}
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(judge[i][j])
cout<<Map[i][j];
else
cout<<"*";
}
cout<<endl;
}
return ;
}
洛谷P1101单词方阵的更多相关文章
- 洛谷 P1101 单词方阵
题目链接 https://www.luogu.org/problemnew/show/P1101 题目描述 给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中 ...
- 洛谷——P1101 单词方阵
https://www.luogu.org/problem/show?pid=1101#sub 题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放 ...
- 洛谷P1101 单词方阵——S.B.S.
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...
- 洛谷P1101 单词方阵【暴力】【字符串】
题目描述 给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向, ...
- 洛谷P1101 单词方阵
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...
- 洛谷P1101 单词方阵【DFS】
给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向 ...
- 洛谷 P1101单词方阵
我已经,是这个世界上,最幸福的女孩了 ——<末日时 ...
- 集训作业 洛谷P1101 单词方阵
这个题的长度真的有点长,我直接放图片吧 这个题又是一个和谐的搜索,找到yizhong的y就开始8面搜索,遇见正确的字母就继续搜索,不正确就果断放弃,果然又是一个和谐的搜索呢. #include< ...
- 洛谷P1101 单词方针
题目描述 给一 n×n 的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉, ...
随机推荐
- 你视为意见领袖的大 V,可能只是个僵尸号
今日导读 “高手在民间”这句话诚不欺我.互联网普及之后,民间大神在各大论坛如雨后春笋般涌现,忽而指点江山,笑谈国际风云,忽而算无遗策,狙击股市庄家,亦或退而求其次,美妆美食美颜,誓要带领少男少女冲在时 ...
- CSS 滤镜技巧与细节
本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! 注意:ie不兼容 本文所描述的滤镜,指的是 CSS3 出来后的滤镜,不是 IE 系列时代的滤镜,话不多说,直接开车,语法如下: { ...
- mongodb基础环境部署(windows系统下)
Normal 0 false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNorma ...
- 第8条:覆盖equals时请遵守通用约定
第8条:覆盖equals时请遵守通用约定 引言:尽管Object是一个具体类,但是设计它主要是为了拓展.它所有的非final方法(equals.hashCode.toString.clone和fina ...
- 基于java开发的开源代码GPS北斗位置服务监控平台
最近在研究位置服务平台,基于全球卫星定位技术(GNSS).互联网技术.空间地理信息技术(GIS).3G/4G无线通信技术,面向全国公众用户建立大容量.实时.稳定的位置信息服务运营平台.实现管理目标的实 ...
- socket传送二进制流的一些总结
第一次实质性的接触socket通信方面的工作,所以遇到的问题还真不少,写篇博客记录一下,提升下记忆. 需求是通过私有协议进行二进制数据的传输,必须保证数据包不能被丢失,所以选择tcp的socket进行 ...
- Java分享笔记:泛型机制的程序演示
package packA; import java.util.*; public class GenericDemo { public static void main(String[] args) ...
- Ansible工作架构和原理
特性 模块块化调用持定的模块,完成持定任务 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块 支持自定义模块 基于Python语法头现 部署简单,基于python和SSH(默认已 ...
- TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
一.问题描述 接手一个项目,使用ThinkPhp3.2.3,在线上环境( Centos7.4 + Nginx1.14 + MySQL5.7 + PHP7.2.4 )运行没有问题, 在本地环境( php ...
- python学习之列表和元组
配置环境:python 3.6 python编辑器:pycharm,代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- # list:是一种有序的集合,可以 ...