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 ...
随机推荐
- c# 数据库数据与DataGridView表控件的绑定
public Form1() { InitializeComponent(); //连接数据库 string str = "Data Source=IP;Initial Catalog=数据 ...
- 基于Token的身份验证--JWT
初次了解JWT,很基础,高手勿喷. 基于Token的身份验证用来替代传统的cookie+session身份验证方法中的session. JWT是啥? JWT就是一个字符串,经过加密处理与校验处理的字符 ...
- 科普HTTP Slow Attack 和 Apache DOS 漏洞的修复
导读 HTTP 的 Slow Attack 有着悠久历史的 HTTP DOS 攻击方式,最早大约追溯到 5 年前,按理说早该修复了,但是 Apache 的默认配置中仍然没有添加相关配置,或者他们认为这 ...
- 了解MIP(Mobile Instant Pages)
mip官网:https://www.mipengine.org/ 什么是mip? mip是百度在2016年提出的移动网页加速器项目.可以简单理解为是一个规范. mip能做什么? mip能帮助站 ...
- 02Del.ashx(删除班级)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using WebHelper ...
- MVC学习之HtmlHelper
1.为什么要使用HtmlHelper? 1.首先HtmlHelper是一个类型,MVC中的ViewPage<TModel>中的一个属性Html属性,这个属性的类型就是HtmlHelper& ...
- C# get post 的方法
#region GET POST /// <summary> /// Get String data = GetString(URL , "PKEY=" + Pkeyl ...
- hihoCoder_1449_后缀自动机三·重复旋律6
#1449 : 后缀自动机三·重复旋律6 时间限制:15000ms 单点时限:3000ms 内存限制:512MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数 ...
- Linux学习-->如何通过Shell脚本实现发送邮件通知功能?
1.安装和配置sendmail 不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件.不过mail命令是依赖sendmail的,所以我们 ...
- 006-spring cache-缓存实现-01-原生实现
一.原生实现 1.1.pom <!-- 缓存 --> <dependency> <groupId>org.springframework.boot</grou ...