洛谷P1101(dfs)
2018-03-03 18:36
267 查看
题目链接:https://www.luogu.org/problemnew/show/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矩阵。思路:直接暴力,dfs,提交五次过(前四次不知道luogu的gets函数不能用)
上代码:
#include<cstdio> #include<cstring> using namespace std; int dx[8]={-1,1,0,0,1,1,-1,-1}; int dy[8]={0,0,1,-1,1,-1,1,-1}; char word[10]="yizhong"; char mapp[110][110]; bool check[110][110]; int n; typedef struct { int xx; int yy; } Solve; Solve solve[100]; bool out(int x,int y) { if(x>=0&&x<n&&y>= 4000 0&&y<n) return false; else return true; } void dfs(int k,int x,int y,int j) { if(k==6) { for(int i=0;i<6;i++) check[solve[i].xx][solve[i].yy]=true; check[x][y]=true; return ; } else { solve[k].xx=x; solve[k].yy=y; if(k==0) { for(int i=0;i<8;i++) { if(!out(x+dx[i],y+dy[i])&&mapp[x+dx[i]][y+dy[i]]==word[k+1]) dfs(k+1,x+dx[i],y+dy[i],i); } } else { if(!out(x+dx[j],y+dy[j])&&mapp[x+dx[j]][y+dy[j]]==word[k+1]) dfs(k+1,x+dx[j],y+dy[j],j); } } return ; } int main() { scanf("%d",&n); getchar(); for(int i=0;i<n;i++) scanf("%s",mapp[i]); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(mapp[i][j]==word[0]) dfs(0,i,j,0); } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(!check[i][j]) printf("*"); else printf("%c",mapp[i][j]); } if(i!=n-1) printf("\n"); } return 0; }
相关文章推荐
- 洛谷 P1101 单词方阵【DFS】
- |洛谷|DFS|P1101 单词方阵
- SSL 1021、洛谷 1037——产生数(dfs或高精度+Floyd)
- 洛谷 1118 [USACO] 数字三角形(不是DP的那道) dfs+乱搞
- 洛谷P1731生日蛋糕(dfs+剪枝)
- 洛谷 P1019 单词接龙【经典DFS,温习搜索】
- 洛谷P1101 单词方阵
- 洛谷1330 封锁阳光大学(DFS or BFS)
- 洛谷 P1433 吃奶酪 (dfs)
- 洛谷 2296_寻找道路_spfa+dfs
- 引水入城(dfs的做法)洛谷p1514
- 洛谷 : P1162 填涂颜色【DFS||BFS】
- 洛谷 P2089 烤鸡(dfs)
- 洛谷 1073_最优贸易_spfa+dfs
- |洛谷|DFS|P1118 [USACO06FEB]数字三角形Backward Digit Su…
- 洛谷——P1101 单词方阵
- 洛谷 1434_滑雪_dfs
- 【DFS+数论】洛谷P1118数字三角形
- 洛谷 1433 吃奶酪 dfs+剪枝
- 洛谷P2420 让我们异或吧 树上差分 dfs