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

网站建设 中企动力南昌0792在线购物网站 模版

网站建设 中企动力南昌0792,在线购物网站 模版,网站建设机器人,mvc电子商务网站开发今天在题单中看了搜索。 解析:两个一维数组,用于表示上下左右四个方向的偏移量,分别对应 x 轴和 y 轴的偏移,遍历四个方向(左、右、下、上),对于每个方向,检查目标位置是否未走过&am…

今天在题单中看了搜索。

解析:两个一维数组,用于表示上下左右四个方向的偏移量,分别对应 x 轴和 y 轴的偏移,遍历四个方向(左、右、下、上),对于每个方向,检查目标位置是否未走过(temp[x + dx[i]][y + dy[i]] == 0)且不是障碍(map[x + dx[i]][y + dy[i]] == 1)。如果满足条件,将当前位置标记为已走过(temp[x][y] = 1),然后递归调用 walk 函数继续搜索。递归返回后,将当前位置标记为未走过(temp[x][y] = 0),以便尝试其他可能的路径。首先读取地图的长 n、宽 m 和障碍总数 T。
将地图的所有位置初始化为可通行(map[ix][iy] = 1)。读取起点坐标 (sx, sy) 和终点坐标 (fx, fy)。
循环 T 次,每次读取一个障碍的坐标 (l, r),并将该位置标记为障碍(map[l][r] = 0)。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int map[6][6];
int temp[6][6];
int dx[4] = {0, 0, 1, -1};
int dy[4] = {-1, 1, 0, 0};
int total, fx, fy, sx, sy, T, n, m, l, r;
void walk(int x, int y) {if (x == fx && y == fy) {total++;return;} else {for (int i = 0; i <= 3; i++) {if (temp[x + dx[i]][y + dy[i]] == 0 && map[x + dx[i]][y + dy[i]] == 1) {temp[x][y] = 1;walk(x + dx[i], y + dy[i]);temp[x][y] = 0;}}}
}
int main() {scanf("%d %d %d", &n, &m, &T);for (int ix = 1; ix <= n; ix++) {for (int iy = 1; iy <= m; iy++) {map[ix][iy] = 1;}}scanf("%d %d", &sx, &sy);scanf("%d %d", &fx, &fy);for (int u = 1; u <= T; u++) {scanf("%d %d", &l, &r);map[l][r] = 0;}walk(sx, sy);printf("%d", total);return 0;
}

解析:将当前位置 (o, p) 标记为 1,表示该位置已经被访问过。循环遍历四个方向(右、下、左、上),递归调用 dfs 函数继续搜索相邻位置。从矩阵的四条边界(上、下、左、右)开始调用 dfs 函数进行搜索。因为边界上的 0 肯定不会被 1 完全包围,通过 DFS 可以将与边界上的 0 相连通的所有 0 标记为 1。遍历 a 数组,如果某个位置的值仍然为 0,说明该位置的 0 被 1 完全包围,将 b 数组中对应位置的值改为 2。

#include<stdio.h>
int a[30][30],b[30][30];
int dx[5]={0,0,1,0,-1};
int dy[5]={0,1,0,-1,0};
int n;
void dfs(int o,int p)
{int i;if(o<0||o>n+1||p<0||p>n+1||a[o][p]!=0){return;}a[o][p]=1;for(i=1;i<=4;i++){dfs(o+dx[i],p+dy[i]);}
}int main()
{int i,j;scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);b[i][j]=a[i][j];}}for(i=0;i<n;i++)dfs(0,i);for(i=0;i<n;i++)dfs(n-1,i);for(i=0;i<n;i++)dfs(i,0);for(i=0;i<n;i++)dfs(i,n-1);for(i=0;i<n;i++){for(j=0;j<n;j++){if(a[i][j]==0)b[i][j]=2;}}for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%d ",b[i][j]);printf("\n");}return 0;
}

http://www.dtcms.com/a/454151.html

相关文章:

  • 凡科网站设计模板品牌网站分析
  • 【Spring 2】深入剖析 Spring 的 Singleton 作用域:不仅仅是单例
  • 【密码学实战】openHiTLS kdf命令行:密钥派生工具
  • 手机网站微信网站开发南京米雅途做网站如何
  • AQS(抽象队列同步器)
  • 【深度学习计算机视觉】10:转置卷积——从图像上采样到特征图还原的核心技术
  • 做坑人网站二维码全网热度指数
  • 购物网站设计的目的新绛网站建设
  • ERT中正问题和逆问题的传统数学推导
  • 模电基础:电流源电路
  • 58同城济南网站建设网站建设公司人员配置
  • 山西品牌网站建设什么网站上做效果图可以赚钱
  • 尚庭公寓中Redis的使用
  • 网站建设服务采购方案惠阳网站优化
  • Python 学习(2) ---- Python 数据类型
  • 三更app下载网站衡阳网站设计
  • 语言结构的基本单位:语素、词根与词缀
  • 线程邮箱(1)
  • 【深入理解计算机系统第3版】浮点数舍入和在不同位模式下的变换2.52
  • 有了域名和空间怎么做网站网站怎么做下拉刷新
  • 【完整源码+数据集+部署教程】 水果叶片分割系统: yolov8-seg-dyhead
  • 前端如何做双语网站wordpress缓存插件汉化破解版
  • Python回调函数中携带额外状态的完整指南:从基础到高级实践
  • 郑州的设计公司企业网站建设推荐乐云seo
  • OpenAI 推出 ChatGPT 应用系统,开发者可在平台内构建互动式应用
  • 【Coze】1.Coze 的基本介绍
  • 字符串比较函数strcmp和strncmp以及memcmp详解与对比分析
  • linux练习-2
  • 大连做网站首选领超科技35互联做的网站
  • 国庆科技感祝福:Python 粒子国旗动画