luogu p1101 单词方阵
https://www.luogu.org/problem/show?pid=1101
很恶心的代码 就是八个方向都搜索
#include<bits/stdc++.h>
using namespace std;
int n;
char s[][],t[][];//一个是刚开始的 一个是结束的
char nex[] = {'y','i','z','h','o','n','g'}; int dfs(int x,int y,int k,int d)
{
if(k == && s[x][y] =='g')
{
//puts("yes");
if(d == ) {
for(int i=;i<=;i++)
t[x][y-i] = nex [-i];
}
if(d == ) {
for(int i=;i<=;i++){
t[x][y+i] = nex[-i];
}
}
if(d== ){
for(int i=;i<=;i++)
t[x-i][y] = nex[-i];
}
if(d== ){
for(int i=;i<=;i++)
t[x+i][y] = nex[-i];
}
if(d== ){
for(int i=;i<=;i++)
t[x-i][y-i] = nex[-i];
}
if(d== ){
for(int i=;i<=;i++)
t[x+i][y+i] = nex[-i];
}
if(d==){
for(int i=;i<=;i++)
t[x-i][y+i] = nex[-i];
}
if(d==){
for(int i=;i<=;i++)
t[x+i][y-i] = nex[-i];
}
return ;
}
if(d== && y+ <= n&&s[x][y+] == nex[k+] ) //往右
dfs(x,y+,k+,d); if(d== && y- >= && s[x][y-] == nex[k+]) //往左
dfs(x,y-,k+,d); if(d== && x+ <= n && s[x+][y] == nex[k+])//往下
dfs(x+,y,k+,d); if(d== && x->= && s[x-][y]==nex[k+])//往上
dfs(x-,y,k+,d); if(d== && x+<=n && y+<=n && s[x+][y+]==nex[k+])//斜下
dfs(x+,y+,k+,d); if(d== && x->= && y->= && s[x-][y-]==nex[k+])//斜上
dfs(x-,y-,k+,d); if(d== && x+<=n && y->= && s[x+][y-]==nex[k+])//左斜下
dfs(x+,y-,k+,d); if(d== && x->= && y+<=n && s[x-][y+]==nex[k+])
dfs(x-,y+,k+,d);
} int main ()
{ cin >> n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
cin>>s[i][j];
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
t[i][j] = '*';
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(s[i][j] == 'y')
{
for(int d=;d<=;d++)
{
dfs(i,j,,d);
}
} }
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
cout<< t[i][j];
cout<<endl;
} }
luogu p1101 单词方阵的更多相关文章
- 洛谷 P1101 单词方阵
题目链接 https://www.luogu.org/problemnew/show/P1101 题目描述 给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中 ...
- 洛谷——P1101 单词方阵
https://www.luogu.org/problem/show?pid=1101#sub 题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放 ...
- 洛谷P1101 单词方阵——S.B.S.
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...
- P1101 单词方阵 简单dfs
题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单 ...
- 洛谷P1101 单词方阵【暴力】【字符串】
题目描述 给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向, ...
- 洛谷P1101单词方阵
题目描述 给一n×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的. 摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有 ...
- P1101 单词方阵
题目描述 给一 n \times nn×n 的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放 ...
- P1101 单词方阵(DFS)
题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88个方向的任一方向,同一单词摆放时不再 ...
- 洛谷P1101 单词方阵
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...
随机推荐
- ubuntu14.04 LTS Visual Studio Code 编辑器推荐
除了ubuntu geany (茶壶图标) 这个一直爱好的编辑器,发现一个新的编辑器“Visual Studio Code”,也是很好用,记录下 https://code.visualstudio.c ...
- pvm虚拟机基本原理
零.绪论:特别鸣谢下文博客,自己博客是对这篇博客的学习笔记: 大佬webber博客:https://www.cnblogs.com/webber1992/p/6597166.html 一.三种文件: ...
- GOOGLE和百度的长域名
GOOGLE的变态域名:www.mamashuojiusuannizhucedeyumingzaichanggoogledounengsousuochulai.cn/中文拼音:“妈妈说就算你注册的域名 ...
- C#知识
2018年10月29日 1.类可以定义的位置: (1)单独定义一个class,在program类的同一个文件内 (2)单独定义一个class,在program类的不同一个文件内 (3)类内定义clas ...
- HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
Jam's problem again Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- jquery ztree 刷新后记录折叠、展开状态
ztree :http://www.ztree.me/v3/main.php 项目中用到了这个插件,刚好也有需求 在页面刷新后,保存开始的展开.折叠状态, 其实 dtree: http://www.d ...
- Qt:QPushButton 单击、双击响应区分
开发环境:win10+vs2015+qt5.9.1 背景:QPushButton的双击事件虽然一直有,但是在双击完成之前,总会响应到单击的事件处理或者连接槽,使用很不方便.自己子类化了一个QPushB ...
- Rochambeau---poj2912||zoj2751(并查集类似于食物链)
题目链接:http://poj.org/problem?id=2912 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1751 ...
- 聪明的打字员---poj1184(bfs)
题目链接:http://poj.org/problem?id=1184 分析:首先可以发现有6*10^6种状态,比较多,不过搜索的时候可以去除一些无用的状态, 可以发现一个点的值(2-5)如果想要改变 ...
- Navicat连接服务器上的Mysql数据库