博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P1101 单词方阵
阅读量:4687 次
发布时间:2019-06-09

本文共 1630 字,大约阅读时间需要 5 分钟。

P1101 单词方阵

题目描述

给一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: 
7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
输出样例#1: 
************************************************* 思路:搜索。
#include
#include
#include
#include
using namespace std;int n,flag;int dx[8]={
0,0,1,1,1,-1,-1,-1};int dy[8]={
1,-1,1,-1,0,1,-1,0};char ans[8]={
'y','i','z','h','o','n','g'};char s[101],map[101][101],vis[101][101];void dfs(int x,int y,int k,int tot){ if(tot==7) return ; int cx=x+dx[k]; int cy=y+dy[k]; if(cx>=1&&cx<=n&&cy>=1&&cy<=n&&ans[tot]==map[cx][cy]) dfs(cx,cy,k,tot+1); else flag=1;}void dfs1(int x,int y,int k,int tot){ vis[x][y]=1; if(tot==7) return ; int cx=x+dx[k]; int cy=y+dy[k]; if(cx>=1&&cx<=n&&cy>=1&&cy<=n&&ans[tot]==map[cx][cy]) dfs1(cx,cy,k,tot+1);}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%s",s); for(int j=0;j

 

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/7900510.html

你可能感兴趣的文章
使用BufferedReader的时候出现的问题
查看>>
linux安装图形界面
查看>>
Android广播发送失败
查看>>
博弈论之入门小结
查看>>
解决IE8下opacity属性失效问题,无法隐藏元素
查看>>
C#匿名函数的坑
查看>>
标记页面控件尺寸
查看>>
批处理文件中的路径问题
查看>>
appium+python 环境搭建
查看>>
WampServer下修改和重置MySQL密码
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
Part2_lesson3---ARM寄存器详解
查看>>
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
python——网络编程
查看>>
Spark的39个机器学习库
查看>>
Electron学习笔记(一)
查看>>
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
查看>>
配置NRPE的通讯
查看>>