用深度优先搜索找到地图降落点最大的相连块的数目
来源:互联网 发布:网络老虎机赌博 编辑:程序博客网 时间:2024/06/06 14:29
#include <stdio.h>int map[51][51] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 1, 2, 1, 0, 0, 0, 0, 0, 2, 3},{0, 3, 0, 2, 0, 1, 2, 1, 0, 1, 2},{0, 4, 0, 1, 0, 1, 2, 3, 2, 0, 1},{0, 3, 2, 0, 0, 0, 1, 2, 4, 0, 0},{0, 0, 0, 0, 0, 0, 0, 1, 5, 3, 0},{0, 0, 1, 2, 1, 0, 1, 5, 4, 3, 0},{0, 0, 1, 2, 3, 1, 3, 6, 2, 1, 0},{0, 0, 0, 3, 4, 8, 9, 7, 5, 0, 0},{0, 0, 0, 0, 3, 7, 8, 6, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}};int book[51][51] = {0};int sum = 0;int next[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};void dfs(int x, int y){int k;int tx, ty;for (k = 0; k <= 3; k++){tx = x + next[k][0];ty = y + next[k][1];if (tx < 1 || tx > 10 || ty < 1 || ty > 10)continue;if (map[tx][ty] > 0 && book[tx][ty] == 0){sum++;book[tx][ty] = 1;dfs(tx, ty);//book[tx][ty] = 0;}}return;}int main(){int startx, starty;printf("输入起点:");scanf("%d %d", &startx, &starty);if (map[startx][starty] > 0){book[startx][starty] = 1;sum = 1;}else{printf("这个地方是大海!!!!!\n");getchar();getchar();return 0;}dfs(startx, starty);printf("如果降落点是(%d, %d),总共有%d个地图块是相连的。\n",startx, starty, sum);getchar();getchar();return 0;}
0 0
- 用深度优先搜索找到地图降落点最大的相连块的数目
- 用广度优先搜索找到地图降落点最大的相连块的数目
- 图的深度优先搜索
- 图的深度优先搜索
- 图的深度优先搜索
- 图的深度优先搜索
- 深度优先搜索的实现
- 图的深度优先搜索
- 图的深度优先搜索
- 邻接矩阵的深度优先搜索
- 图的深度优先搜索
- 图的深度优先搜索
- 深度优先搜索的学习
- 图的深度优先搜索
- 图的深度优先搜索
- 图的深度优先搜索
- 图的深度优先搜索
- 深度优先搜索的基础
- git 提交到远程服务器
- 八大排序算法
- ASP.NET中处理自定义错误的最佳方式
- 使用CamlBuilder生成CAML查询语句
- <c:forEach>
- 用深度优先搜索找到地图降落点最大的相连块的数目
- 局域网无法访问vmware虚拟机WEB服务器解决办法
- 黑马程序员——java基础---流程控制、函数、数组
- 常用Web开发语言HttpOnly设置详解
- Oracle常用查看表结构命令
- 让树莓派使用sd卡剩余空间
- 【LeetCode】016.3Sum Closest
- vb.net中利用双缓冲绘图技术解决listview加载数据闪烁的问题
- 有哪些实用的计算机相关技能,可以在一天内学会?