博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
[HNOI2017]大佬
查看>>
『重构--改善既有代码的设计』读书笔记----Hide Delegate
查看>>
1、libgdx简单介绍
查看>>
Swift iOS tableView static cell动态计算高度
查看>>
Windows Phone开发(24):启动器与选择器之发送短信 转:http://blog.csdn.net/tcjiaan/article/details/7404643...
查看>>
工厂模式(headfirst)笔记
查看>>
Hibernate初探之单表映射——创建持久化类
查看>>
File类
查看>>
有 n个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子, 问最后留下的是原来第几号的那位...
查看>>
mui框架通讯录检索
查看>>
正则表达式全集
查看>>
vuex中的dispatch和commit
查看>>
mybatis实战教程二:多对一关联查询(一对多)
查看>>
NodeMCU文档中文翻译 3 构建固件
查看>>
前端学习☞jquery
查看>>
10分钟搞懂树状数组
查看>>
关于C#的静态类和静态构造函数
查看>>
C#不同窗体间通信,数据传递
查看>>
Windows10下安装Oracle 11g 64位的详细步骤
查看>>
自增运算符:++ 自减运算符:--
查看>>