当前位置: 首页 > news >正文

网站建设保密协议安徽商会网站建设方案

网站建设保密协议,安徽商会网站建设方案,产品如何推广,什么是友情链接?题面 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 nn 的格点组成,每个格点只有 22 种状态, 00 和 11,前者表示可以通行后者表示不能通行。 同时当Extense处在某个格点时,他只能移动到东南西北…

题面

一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n×n 的格点组成,每个格点只有 22 种状态, 00 和 11,前者表示可以通行后者表示不能通行。

同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点 A 走到点 B ,问在不走出迷宫的情况下能不能办到。

如果起点或者终点有一个不能通行(为 1),则看成无法办到。

输入

第 1 行是一个正整数 n (1≤n≤100),表示迷宫的规模是 n×n 的。

接下来是一个 n×n 的矩阵,矩阵中的元素为 0 或者 1。

再接下来一行是 4 个整数 ha la hb lb,描述 A 处在第ha 行 第 la 列,B 处在第hb 行 第 lb 列。

输出

能办到则输出 YES,否则输出 NO

样例

输入

3
0 1 1
0 0 1
1 0 0
1 1 3 3

输出

YES
链接:Link. 

典中典中典的dfs或bfs题,用dfs做的话要注意边界和到没到达终点。

解法一:到了终点用一个f来标记,true就是到了,false就反之

#include <bits/stdc++.h>
using namespace std;
int a[110][110];
int n , s1 , s2 , e1 , e2;
bool f = false;
int fx[5] = {0 , 0 , 1 , 0 , -1};
int fy[5] = {0 , 1 , 0 , -1 , 0};
void dfs(int x , int y){a[x][y] = 1;int tx , ty;for ( int i = 1 ; i <= 4 ; i++ ){tx = x + fx[i];ty = y + fy[i];if(tx >= 1 && tx <= n && ty >= 1 && ty <= n && a[tx][ty] == 0 ){if(tx == e1 && ty == e2) f = true;else dfs(tx , ty);}}
}
int main(){scanf("%d" , &n);for ( int i = 1 ; i <= n ; i++ )for ( int j = 1 ; j <= n ; j++ )scanf("%d" , &a[i][j]);scanf("%d%d%d%d" , &s1 , &s2 , &e1 , &e2);if ( a[s1][s2] == 1 || a[e1][e2] == 1 )printf("NO");else{dfs(s1 , s2);if ( f == true )printf("YES");elseprintf("NO");}return 0;
}

 解法二:多加了一个判断条件f==false,这能防止无效递归

#include <bits/stdc++.h>
using namespace std;
int a[110][110];
int n , s1 , s2 , e1 , e2;
bool f = false;
int fx[5] = {0 , 0 , 1 , 0 , -1};
int fy[5] = {0 , 1 , 0 , -1 , 0};
void dfs(int x , int y){a[x][y] = 1;int tx , ty;for ( int i = 1 ; i <= 4 ; i++ ){tx = x + fx[i];ty = y + fy[i];if(tx >= 1 && tx <= n && ty >= 1 && ty <= n && a[tx][ty] == 0 && f == false){if(tx == e1 && ty == e2) f = true;else dfs(tx , ty);}}
}
int main(){scanf("%d" , &n);for ( int i = 1 ; i <= n ; i++ )for ( int j = 1 ; j <= n ; j++ )scanf("%d" , &a[i][j]);scanf("%d%d%d%d" , &s1 , &s2 , &e1 , &e2);if ( a[s1][s2] == 1 || a[e1][e2] == 1 )printf("NO");else{dfs(s1 , s2);if ( f == true )printf("YES\n");elseprintf("NO");}return 0;
} 

 解法三:到了终点直接输出YES,然后结束整个程序

#include <bits/stdc++.h>
using namespace std;
int a[110][110];
int n , s1 , s2 , e1 , e2;
int fx[5] = {0 , 0 , 1 , 0 , -1};
int fy[5] = {0 , 1 , 0 , -1 , 0};
void dfs(int x , int y){a[x][y] = 1;int tx , ty;for ( int i = 1 ; i <= 4 ; i++ ){tx = x + fx[i];ty = y + fy[i];if(tx >= 1 && tx <= n && ty >= 1 && ty <= n && a[tx][ty] == 0 ){if(tx == e1 && ty == e2) {printf("YES");exit(0); //Í£Ö¹³ÌÐò }else dfs(tx , ty);}}
}
int main(){scanf("%d" , &n);for ( int i = 1 ; i <= n ; i++ )for ( int j = 1 ; j <= n ; j++ )scanf("%d" , &a[i][j]);scanf("%d%d%d%d" , &s1 , &s2 , &e1 , &e2);if ( a[s1][s2] == 1 || a[e1][e2] == 1 )printf("NO");else{dfs(s1 , s2);printf("NO");}return 0;
} 

 

http://www.yayakq.cn/news/569784/

相关文章:

  • 网站开发用什么浏览器网络营销策划方案的步骤
  • 德格网站建设自己做传奇网站
  • 找人做网站需要什么软件wordpress怎么中文字体
  • 产品销售网站模块如何设计免费做ppt网站
  • 网站 服务器 虚拟主机软件开发公司排行榜
  • 阿里巴巴网站首页怎么制作绿建设计院网站
  • 网站建设资质要求怎样在自己的网站上家程序
  • 什么是网站开发类课程威廉网站建设
  • express做静态网站布展设计公司排名
  • 教学类网站怎么做网站建设分享
  • 新增网站备案时间WordPress如何迁移数据
  • 传奇手游盒子app平台排行榜哈尔滨百度网站快速优化
  • 360广告联盟怎么做网站wordpress 入门pdf
  • 网站数据库出问题给别人做违法网站
  • 淄博建设网站公司美食推广平台有哪些
  • 网站源码论坛如何建立个人网站
  • 东莞网站建设优化方案求个网站好人有好报2023
  • 网站制作的文章数学网站建设方法
  • 有什么可以做翻译的网站吗wordpress在文章中加背景
  • 视频点播网站开发教程如何在自己电脑上做网站服务器
  • 兰州学校网站建设传奇背景图网站怎么做
  • 好用的网站后台管理系统遵义直播遵义新闻官网
  • 做网店好还是网站西安网站建设专家
  • 网站开发流程三部分软件外包开发平台
  • 陕西建站成都线上推广平台
  • 网站怎么添加二级域名重庆建筑信息网查询
  • 协会网站建站宁波快速制作网站
  • 局网站建设申请烟台网站建设团队
  • ppt做视频的模板下载网站有哪些内容沧州网站制作多少钱
  • 网站接单做项目电脑编程用什么软件