P1101 单词方阵
2017-01-01 18:50
302 查看
题目描述
给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如:
输入:
8
qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg
输出:
*yizhong
gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
输入格式:
第一行输入一个数n。(7<=n<=100)。
第二行开始输入nXn的字母矩阵。
输出格式:
突出显示单词的nXn矩阵。
输入输出样例
输入样例#1:
7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出样例#1:
搜索之带方向的搜索。w表示方向 。
给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如:
输入:
8
qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg
输出:
*yizhong
gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
输入格式:
第一行输入一个数n。(7<=n<=100)。
第二行开始输入nXn的字母矩阵。
输出格式:
突出显示单词的nXn矩阵。
输入输出样例
输入样例#1:
7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出样例#1:
******* ******* ******* ******* ******* ******* *******
搜索之带方向的搜索。w表示方向 。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; char a[105][105]; bool b[105][105]; char s[]="yizhong"; int mx[8]={0,1,1, 1,0 ,-1,-1,-1}, my[8]={1,1,0,-1,-1,-1, 0, 1}; int n; void dfs(int i,int j,int w,int t)//w表示方向 { if(w==-1) { for(int k=0;k<8;k++) { int x=i+mx[k]; int y=j+my[k]; if(a[x][y]==s[t])// dfs(x,y,k,t+1); } return; } if(t==7) { int xx=i,yy=j; for(int p=1;p<=7;p++) { b[xx][yy]=1; xx=xx-mx[w]; yy=yy-my[w]; } return; } int x=i+mx[w]; int y=j+my[w]; if(a[x][y]==s[t])//a[] dfs(x,y,w,t+1); } int main() { freopen("fang.txt","r",stdin); memset(a,'*',sizeof a); scanf("%d ",&n); for(int i=1;i<=n;i++)//这种写法要学会 scanf("%s",a[i]+1); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(a[i][j]=='y') dfs(i,j,-1,1); } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) if(b[i][j]) cout<<a[i][j]; else cout<<'*'; cout<<endl; } }
相关文章推荐
- 搜索与回溯 洛谷 P1101 单词方阵
- 洛谷 P1101 单词方阵
- 洛谷——P1101 单词方阵
- 洛谷 P1101 单词方阵【DFS】
- |洛谷|DFS|P1101 单词方阵
- 洛谷P1101 单词方阵——S.B.S.
- P1101 单词方阵
- P1101 单词方阵
- 洛谷P1101 单词方阵——S.B.S.
- 洛谷18-03-11-P1101单词方阵
- C++ P1101 单词方阵
- 洛谷 P1101 单词方阵
- 洛谷——P1101 单词方阵
- P1101 单词方阵
- C++ P1101 单词方阵
- 洛谷P1101 单词方阵
- 【p1101-单词方阵】解题记录
- 洛谷 P1101 单词方阵
- 洛谷P1101 单词方阵
- P1101 单词方阵