P1101 单词方阵
P1101 单词方阵
https://www.luogu.org/problemnew/show/P1101
标签
难度 普及-
时空限制 1000ms / 128MB
提示:收藏到任务计划后,可在首页查看。
最新讨论
推荐的相关题目
题目描述
给一n \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:
输入:8
输出:
qyizhong *yizhong
gydthkjy gy******
nwidghji n*i*****
orbzsfgz o**z****
hhgrhwth h***h***
zzzzzozo z****o**
iwdfrgng i*****n*
yyyygggg y******g
输入输出格式
输入格式:
第一行输入一个数nn。(7 \le n \le 1007≤n≤100)。
第二行开始输入n \times nn×n的字母矩阵。
输出格式:
突出显示单词的n \times nn×n矩阵。
输入输出样例
输入样例#1:
7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出样例#1:
*************************************************
输入样例#2:
8
qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg
输出样例#2:
*yizhong
gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
/*
很久之前看过,那时没有好的想法(那时太菜),今天下午在看一下,顿时感觉好简单,说明我水平还是有提升~~
*/
#include <bits/stdc++.h>
using namespace std;
struct point
{int x;int y;point(){}point(int xx,int yy):x(xx),y(yy) {}
}a[10];
int step[8][2]=
{-1,0,1,0,0,-1,0,1,-1,-1,-1,1,1,-1,1,1
};
queue<point>q;
char mp[105][105];
int value[105][105];
int n;
const char *s = "yizhong";
bool check(int xx,int yy,int cnt)
{if(cnt >= 7)return false;if(xx < 0 || xx >= n || yy < 0 || yy >= n)return false;if(mp[xx][yy] != s[cnt])return false;return true;
}
void DFS(int sx,int sy,int cnt)
{for(int i = 0; i < 8; i++){int xx = sx + step[i][0];int yy = sy + step[i][1];while(check(xx,yy,cnt)){a[cnt++] = point(xx,yy);if(cnt == 7)break;xx = xx + step[i][0];yy = yy + step[i][1];}if(cnt == 7){value[sx][sy]++;for(int i = 1; i < cnt; i++){int tx = a[i].x,ty = a[i].y;value[tx][ty]++;}}cnt = 1;}}
int main()
{cin>>n;for(int i = 0; i < n; i++){cin>>mp[i];for(int j = 0; j < n; j++){if(mp[i][j] == 'y'){q.push(point(i,j));}}}while(!q.empty()){point s = q.front();q.pop();DFS(s.x,s.y,1);}for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){if(value[i][j]){cout<<mp[i][j];}else{cout<<'*';}}cout<<endl;}return 0;
}
P1101 单词方阵相关推荐
- 洛谷—题解 P1101 单词方阵
原题链接P1101 单词方阵 有条件的小伙伴可以点进原网站开题,也可直接看我下面的截图 废话一堆 艾瑞巴蒂,我可爱的小伙伴们!我也是很久没有写题解了,因为疫情的关系,在家我TM实在太闲了-做做题,写 ...
- 洛谷——P1101 单词方阵
题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不 ...
- P1101 单词方阵(DFS)
题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88个方向的任一方向,同一单词摆放时不再 ...
- 洛谷 P1101 单词方阵
给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉 ...
- [洛谷 OJ]P1101 单词方阵
题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不 ...
- 洛谷 P1101 单词方阵
DFS的例题,难点在于所选的yizhong必须是一行的不能拐弯,我第一次写的时候直接在DFS里的判断条件里加了if(当前位置的字符==yizhong相应位置的字符)这样的语句,当然这样不对,因为没有保 ...
- |洛谷|DFS|P1101 单词方阵
http://www.luogu.org/problem/show?pid=1101 循环找到一个y后向8个方向搜索,直到搜到g,然后按照方向反向填充即可 #include<cstdio> ...
- 洛谷P1101 单词方阵
一道简单的利用dfs思想解决的水题,写这篇文章只是为了忏悔为什么疫情在家学习的时候没有好好学习数据结构以及大二没有好好写过题,导致快大四了还要重头学数据结构(感谢我的老师让我数据结构飘过) 这道题我大 ...
- 洛谷P1101 单词方阵 (C语言 + 详细注释 + 五妙)
//首先声明一下,我的代码大部分是参照洛谷的一位博客:Way_How_Fri3nd.看完后我就觉得写的非常好,由于我不知道怎么转载洛谷的博客,所以干脆自己写一篇CSDN博客,因为写的实在是太好了,我迫 ...
最新文章
- Effective java笔记3--类和接口2
- 有关oracle数据库中的日期显示问题
- 【聊透SpringMVC】自学java和三大框架要多久
- ios开发学习--列表(Table)效果源码分享--系列教程4
- 【转】直线光栅化算法-Bresenham算法
- flash也玩p2p
- linux 小命令1
- Calendar的那些神坑
- Spring 是什么
- pdb 调试python
- windows下搭建SSH隧道内网映射
- Hark的数据结构与算法练习之梳排序
- [ACM训练] 算法初级 之 搜索算法 之 广度优先算法BFS (POJ 3278+1426+3126+3087+3414)
- weka与mysql相连_Weka与MySQL连接配置
- 【第一阶段 day25 面向对象】 多态
- 【Linux】yum卸载恢复
- 内存稳定性测试软件(MemTest)
- laravel Specified key was too long 解决方案
- Debezium同步之oracle rac数据到oracle单机的安装步骤
- Windows删除文件夹提示“文件夹被某一程序占用”,删除失败
热门文章
- mysql 南邮ctf_南邮ctf web
- java socket 自动重连_socket 如何判断远端服务器的连接状态?连接断开,需重连...
- k8s多master建议用几个_K8s 还是 k3s?This is a question
- cpu序列号唯一吗_手机CPU天梯图2020年1月最新版 你的手机处理器排名高吗?
- Spark SQL:SQLContext
- 实用脚本!Python 提取 PDF 指定内容生成新文件!
- Python-Matplotlib动态曲线图(linechart)绘制
- 机器学习基础-LASSO-07
- mysql数据类型默认值_MySQL数据类型 - 数据类型默认值
- git把本地代码上传(更新)到github上