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 ...
随机推荐
- str += "a" + "b" & str = str + "a" + "b"的性能比较
str += "a" + "b"在浏览器中的执行过程: 1.创建临时字符串, 2.将临时字符串设置为“ab”, 3.将临时字符串和str进行连接, 4.将结果赋 ...
- C# Global.asax文件里实现通用防SQL注入漏洞程序(适应于post/get请求)
可使用Global.asax中的Application_BeginRequest(object sender, EventArgs e)事件来实现表单或者URL提交数据的获取,获取后传给SQLInje ...
- [UML]UML 教程 - 第二部分
UML作为软件开发典型的开发过程 业务过程模型创建 业务过程模型被用来定义发生在企业或组织内部的高级业务活动和业务过程,并且是建立用例模型的基础.一般来说业务过程模型比一个软件系统所能实现的更多(比如 ...
- mac java环境变量配置
在终端输入java -version命令,如果没安装系统会自动弹出个东西让你安装,下载完之后打开,再点java -version,如果有显示就说明安装成功了. 在终端输入 ç 可以得到JAVA_HO ...
- Activity工作流入门之HelloWorld
Activity的在线安装地址为:http://www.activiti.org/designer/update/ 打开Eclipse -> Help -> Install New Sof ...
- AB压力测试工具
1.安装AB工具: yum install httpd-tools 2.测试: ab -n -c http://localhost.com/ 其中-n表示请求数,-c表示并发数 3.测试结果 [roo ...
- ABP 样板开发框架系列
--ABP 官网与源码 http://www.aspnetboilerplate.com/ https://github.com/aspnetboilerplate --pdf和docx 文档 htt ...
- es navi map+++++++nginx logs-parser
http://www.cnblogs.com/ahaii/p/7410421.html [2017-12-17T00:01:03+08:00] ["GET /user/comm/login? ...
- python并发
并发方式 线程(Thread) 多线程几乎是每一个程序猿在使用每一种语言时都会首先想到用于解决并发的工具(JS程序员请回避),使用多线程可以有效的利用CPU资源(Python例外).然而多线程所带来的 ...
- python获取当天日期进行格式转换
# Python Library import time def getToday(format=3): """返回今天的日期字串""" # ...