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 单词方阵的更多相关文章

  1. 洛谷 P1101 单词方阵

    题目链接 https://www.luogu.org/problemnew/show/P1101 题目描述 给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中 ...

  2. 洛谷——P1101 单词方阵

    https://www.luogu.org/problem/show?pid=1101#sub 题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放 ...

  3. 洛谷P1101 单词方阵——S.B.S.

    题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...

  4. P1101 单词方阵 简单dfs

    题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单 ...

  5. 洛谷P1101 单词方阵【暴力】【字符串】

    题目描述 给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向, ...

  6. 洛谷P1101单词方阵

    题目描述 给一n×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的. 摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有 ...

  7. P1101 单词方阵

    题目描述 给一 n \times nn×n 的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放 ...

  8. P1101 单词方阵(DFS)

    题目描述 给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88个方向的任一方向,同一单词摆放时不再 ...

  9. 洛谷P1101 单词方阵

    题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...

随机推荐

  1. webpack打包jquery并引用

    一,引入webpack插件 //打包第三方 const CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlug ...

  2. shell脚本关闭tomcat

    使用shell脚本快速关闭tomcat,就是获取tomcat进程后,一起kill掉: #!/bin/sh #kill tomcat pid name=tomcat-emall pidlist=`ps ...

  3. thinkphp---手机访问切换模板!

    手机访问切换模板:一般用在手机在做自适应的情况. 第一步:需要添加判断是否是手机访问的方法: http://www.cnblogs.com/e0yu/p/7561811.html 第二步:Home / ...

  4. ROM和RAM的故事

    在公众号里看到一篇很好的文章讲解rom和ram,之前也是一直不能理解两者的区别,今天就转载记下来吧.也方便大家学习. 因为我刚开始学习的时候总喜欢刨根问底,一个问题要是不搞清楚,后面学习都会很吃力的. ...

  5. Python 3 利用 Dlib 实现人脸 68个 特征点的标定

    0. 引言 利用 Dlib 官方训练好的模型 “shape_predictor_68_face_landmarks.dat” 进行 68 个点标定: 利用 OpenCv 进行图像化处理,在人脸上画出 ...

  6. js判断移动端和PC端跳转不同页面

    方法一: /* * * 判断PC端与WAP端 */ var mobile_bs = { versions: function() { var u = navigator.userAgent; retu ...

  7. 理论实践:循序渐进理解AWR细致入微分析性能报告

    1. AWR 概述 Automatic Workload Repository(AWR) 是10g引入的一个重要组件.在里面存贮着近期一段时间内(默认是7天)数据库活动状态的详细信息. AWR 报告是 ...

  8. handle exceptions, opening and closing database connections

    https://www.tutorialspoint.com/spring/spring_jdbc_framework.htm Spring - JDBC Framework Overview Whi ...

  9. nginx详解之语法规则

    1.location [=|~|~*|^~] /uri/ { … } location  = / {   # 精确匹配 / ,主机名后面不能带任何字符串   [ configuration A ]  ...

  10. 纯css3加载动画

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name= ...