洛谷 P1101 单词方阵
洛谷 P1101 单词方阵
题目链接
https://www.luogu.org/problemnew/show/P1101
题目描述
给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:

输入输出格式
输入格式:
第一行输入一个数nn。(7≤n≤100)。
第二行开始输入n×n的字母矩阵。
输出格式:
突出显示单词的n×n矩阵。
思路
每天一篇博文,嘤嘤嘤,所以我又来啦!
看到一篇题解很牛掰的样子,于是照着就打下来了......qaq
先用数组f,g分别标记x,y的加减,再寻找“y”的位置,找到之我们后用八个方向去试
如果每一位皆符合,那么st字符串数组就赋值,最后处理一下st,输出就好啦
代码
#include<bits/stdc++.h>
using namespace std;
string st[1001],s[1001];
int f[8]={0,-1,-1,-1,0,1,1,1};
int g[8]={1,1,0,-1,-1,-1,0,1};
int a1,a2,n;
bool pd;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)cin>>s[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
st[i]+='0';
}
}
for(int i=1;i<=n;i++){
for(int j=0;j<=n-1;j++){
if(s[i][j]=='y'){
for(int k=0;k<=7;k++){
a1=i;a2=j;
pd=1;
for(int l=1;l<=6;l++){
a1+=f[k];a2+=g[k];
if(a1<1||a1>n||a2<0||a2>n-1)pd=0;
if(pd==0)break;
if(l==1&&s[a1][a2]!='i')pd=0;
if(l==2&&s[a1][a2]!='z')pd=0;
if(l==3&&s[a1][a2]!='h')pd=0;
if(l==4&&s[a1][a2]!='o')pd=0;
if(l==5&&s[a1][a2]!='n')pd=0;
if(l==6&&s[a1][a2]!='g')pd=0;
}
a1=i;a2=j;
if(pd){
for(int l=0;l<=6;l++){
st[a1][a2]=s[a1][a2];
a1+=f[k],a2+=g[k];
}
}
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=0;j<=n-1;j++){
if(st[i][j]=='0')st[i][j]='*';
}
}
for(int i=1;i<=n;i++){
cout<<st[i]<<'\n';
}
}
洛谷 P1101 单词方阵的更多相关文章
- 洛谷——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单词方阵
题目描述 给一n×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的. 摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有 ...
- 洛谷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 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉, ...
随机推荐
- leetcode — best-time-to-buy-and-sell-stock
/** * Source : https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock/ * * * Say you have ...
- [二十六]JavaIO之再回首恍然(如梦? 大悟?)
流分类回顾 本文是JavaIO告一段落的总结帖 希望对JavaIO做一个基础性的总结(不涉及NIO) 从实现的角度进行简单的介绍 下面的这两个表格,之前出现过 数据源形式 InputStream Ou ...
- -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
本文关键词: java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait( ...
- 关于利用maven搭建ssm的博客,我们一起来探讨下问的最多的问题
前言 开心一刻 有个同学去非洲援建,刚到工地接待他的施工员是个黑人,他就用英语跟人家交流,黑人没做声. 然后他又用法语,黑人还是没说话. 然后他用手去比划.黑人终于开口了:瞎比划嘎哈,整个工地都中国人 ...
- python迭代和解析(3):range、map、zip、filter和reduce函数
解析.迭代和生成系列文章:https://www.cnblogs.com/f-ck-need-u/p/9832640.html range range()是一个内置函数,它返回一个数字序列,功能和Li ...
- VS Code调试.Net Core版Hello World
安装C#插件 下载安装插件,地址:https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp 安装插件之后重新启动VS C ...
- Java_Object_Date_System等常用类
01.第一章:Object类_概述 1).什么是"Java类库":指Java语言的官方为我们程序员提供的一些已经写好的,面向某些应用的“类”,这些类会随着JDK一起 发布,我们就业 ...
- 【学习笔记】tensorflow基础
目录 认识Tensorflow Tensorflow特点 下载以及安装 Tensorflow初体验 Tensorflow进阶 图 op 会话 Feed操作 张量 变量 可视化学习Tensorboard ...
- loj#2531. 「CQOI2018」破解 D-H 协议(BSGS)
题意 题目链接 Sol 搞个BSGS板子出题人也是很棒棒哦 #include<bits/stdc++.h> #define Pair pair<int, int> #defin ...
- RelativeLayout设置wrap_content无效
尊重劳动成果,转载请标明出处:http://www.cnblogs.com/tangZH/p/8419053.html 在做项目的过程中,遇到了一个奇怪的现象,我设置RelativeLayout为的宽 ...