博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DFS之城堡问题
阅读量:4957 次
发布时间:2019-06-12

本文共 1219 字,大约阅读时间需要 4 分钟。

2019-06-01

17:54:51

坚持!!

题目链接:

http://bailian.openjudge.cn/practice/2815

#include 
using namespace std;int n = 0, m = 0;int roomNumber = 0;int roomSize = 0; //当前房间的面积大小int maxRoomSize = 0;int room[100][100];int color[100][100];void dfs(int x, int y);int main(){ scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &room[i][j]); } } for(int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if(color[i][j] == 0) { roomNumber++; roomSize = 0; dfs(i, j); maxRoomSize = max(maxRoomSize, roomSize); } } } cout << roomNumber << endl; cout << maxRoomSize << endl; return 0;}void dfs(int x, int y){ if(color[x][y] != 0) { return; } roomSize++; color[x][y] = roomNumber; if((room[x][y] & 1) == 0) dfs(x, y - 1); //向西走 if((room[x][y] & 2) == 0) dfs(x - 1, y); //向北走 if((room[x][y] & 4 )== 0) dfs(x, y + 1); //向东走 if((room[x][y] & 8) == 0) dfs(x + 1, y); //向南走}

 

转载于:https://www.cnblogs.com/Artimis-fightting/p/10960549.html

你可能感兴趣的文章
1.7Oob方法的作用
查看>>
英文词频统计预备,组合数据类型练习
查看>>
管理信息系统 第三部分 作业
查看>>
发布功能完成。
查看>>
Scrapy进阶
查看>>
Silverlight:Grid扩展
查看>>
对261个国家地区快速查找选择
查看>>
java获取src下包的文件的路径
查看>>
从最大似然到EM算法浅解
查看>>
Introduction to BGP (1)
查看>>
[YII2] 展示页面显示图片 以及手机号隐藏为*和姓名隐藏姓为*,
查看>>
[Laravel框架学习二]:Laravel的CURD和查询构造器的CURD,以及聚合函数
查看>>
修复垂直滑动RecyclerView嵌套水平滑动RecyclerView水平滑动不灵敏问题
查看>>
git 切换远程分支
查看>>
语法分析(11)...
查看>>
仿Discuz!的论坛评分发帖弹出提示并渐渐消失的效果
查看>>
正则表达式全部符号解释
查看>>
深入理解空间搜索算法 ——数百万数据中的瞬时搜索
查看>>
MVC、MVP和MVVM
查看>>
NeHe OpenGL教程 第六课:纹理映射
查看>>