题目描述

给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如:

输入:
8 输出:
qyizhong *yizhong
gydthkjy gy******
nwidghji n*i*****
orbzsfgz o**z****
hhgrhwth h***h***
zzzzzozo z****o**
iwdfrgng i*****n*
yyyygggg y******g

输入输出格式

输入格式:

第一行输入一个数n。(7<=n<=100)。

第二行开始输入nXn的字母矩阵。

输出格式:

突出显示单词的nXn矩阵。

输入输出样例

输入样例#1:

7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出样例#1:

*******
*******
*******
*******
*******
*******
******* 记录一下搜的方向,递归标记就行
 /*by SilverN*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int mxn=;
int mx[]={,,,-,,,,-,-},
my[]={,,,,-,,-,,-};
char s[mxn]="yizhong";
char mp[mxn][mxn];
int n;
inline bool check(int x,int y){
if(x< || x>=n || y< || y>=n)return ;
return ;
}
int vis[mxn][mxn];
bool dfs(int x,int y,int last,int dir){
int i,j;
if(last==)return ;
int nx=x+mx[dir],ny=y+my[dir];
if(!check(nx,ny))return ;
if(mp[nx][ny]==s[last+]){
if(dfs(nx,ny,last+,dir)){
vis[nx][ny]=;
return ;
}
}
return ;
}
int main(){
scanf("%d",&n);
int i,j;
for(i=;i<n;i++){
scanf("%s",mp[i]);
}
for(i=;i<n;i++)
for(j=;j<n;j++){
if(mp[i][j]=='y'){
for(int k=;k<=;k++)
if(dfs(i,j,,k))vis[i][j]=;
}
}
for(i=;i<n;i++)
for(j=;j<n;j++){
if(vis[i][j])printf("%c",mp[i][j]);
else printf("*");
if(j==n-)printf("\n");
}
return ;
}
 

最新文章

  1. 基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
  2. 对“Java”的诞生历史、特点、定义等HR常问的简单题
  3. BZOJ 2200 道路与航线
  4. Dapper的完整扩展(转)
  5. Android 开发之异常处理篇(一):SDK Manager 闪退的解决方法
  6. 《squid网卡代理的实现》RHEL6.3——条理清晰,步骤明确
  7. BZOJ 4311: 向量( 按时间分治 + 线段树 )
  8. Selenium2(java)环境搭建 一
  9. javascript中的事件Event
  10. NFS : device is busy
  11. 洛谷 P1129 解题报告
  12. HWPushDemo【华为推送集成,基于2.6.1.301版本】
  13. 螺旋矩阵 java实现(待消化)
  14. 近期遇到的计(算)算(法)题及解(JavaScript)
  15. Jquery Post提交时Content-Type的不同取值详解
  16. Hibernate 中的 idclass mapping 问题
  17. mysql|表row_format的静态与动态,Compact
  18. jq dom不存在时绑定事件
  19. 【Kettle】1、简单介绍
  20. 【Python Learning第一篇】Linux命令学习及Vim命令的使用

热门文章

  1. Bootstrap历练实例:默认的面板(Panels)
  2. 03_6_package和import语句
  3. CE软件修改器
  4. JQ之$.ajax()方法以及ajax跨域请求
  5. Thinkphp5的安装
  6. Ubuntu 16.04中安装谷歌Chrome浏览器
  7. POJ:2411-Mondriaan's Dream(矩形拼接方案)
  8. Docker初认识(一)
  9. 排序算法总结 c描述
  10. RHEL 7.3修改网卡命名规则为ethX