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

安丘网站建设多少钱/广东seo价格是多少钱

安丘网站建设多少钱,广东seo价格是多少钱,数字化校园建设网站,网站开发公司飞沐题面 一天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.jmfq.cn/news/5323213.html

相关文章:

  • 免费网站建设品牌好/推广形式有哪几种
  • 洋桥网站建设/黄冈seo
  • 中山网站建设文化报价/江门搜狗网站推广优化
  • 网站建设基础服务/seo网站推广计划
  • 网站建设前的分析/想卖产品怎么推广宣传
  • 网站建设优化收费/站长工具介绍
  • 教育网站建设备案/怎么去做推广
  • 广州建设官方网站/申请网站域名要多少钱
  • 网站建设电销/泉州关键词快速排名
  • 网站建设费在会计上怎么入账/网络营销外包
  • 公司网站建设应注意什么/windows优化大师是系统软件吗
  • 网站建设山东/指数查询
  • 漳州网站建设哪家最权威/注册域名要钱吗
  • 网站建设进度的问题/seo做的比较牛的公司
  • 中国城乡建设部网站/seo关键词快速获得排名
  • 四川住房城乡建设周刊网站/长春网站公司哪家好
  • 电商网站建设与运营成本/深圳整合营销
  • 蔚县网站建设wl17581/上海推广服务
  • 团队网站建设/石家庄新闻网
  • 建设银行网站安全分析/产品软文是什么意思
  • 深圳网站建设saote/网站推广与优化平台
  • 网站建设 技术方案/图片百度搜索
  • 网站建设客户确认单/廊坊优化技巧
  • 哈尔滨城乡建设委员会的网站/谷歌商店paypal官网
  • 网站建设的域名/百度快照下载
  • 长治网站建设推广/友情链接交换的作用在于
  • 一元购网站的建设/网络推广公司北京
  • 招聘网站建设保定/做百度推广效果怎么样
  • 网站建设的wbs分解/网页生成器
  • 网站建设集团/福州网站关键词推广