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

安徽省住房与城乡建设网站c 购物网站开发流程

安徽省住房与城乡建设网站,c 购物网站开发流程,网站开发终止合作协议,wordpress简码第十一章&#xff1a;图论part02 岛屿数量 深搜 注意深搜的两种写法&#xff0c;熟练掌握这两种写法 以及 知道区别在哪里&#xff0c;才算掌握的深搜。 代码随想录 #include <iostream> #include <vector> using namespace std; int dir[4][2] {0, 1, 1, 0, -1,…

第十一章:图论part02

  1. 岛屿数量 深搜

注意深搜的两种写法,熟练掌握这两种写法 以及 知道区别在哪里,才算掌握的深搜

代码随想录

#include <iostream>
#include <vector>
using namespace std;
int dir[4][2] = {0, 1, 1, 0, -1, 0, 0, -1}; // 四个方向
void dfs(const vector<vector<int>>& grid, vector<vector<bool>>& visited, int x, int y) {if (visited[x][y] || grid[x][y] == 0) return; visited[x][y] = true; for (int i = 0; i < 4; i++) {int nextx = x + dir[i][0];int nexty = y + dir[i][1];if (nextx < 0 || nextx >= grid.size() || nexty < 0 || nexty >= grid[0].size()) continue;  // 越界了,直接跳过dfs(grid, visited, nextx, nexty);}
}int main() {int n, m;cin >> n >> m;vector<vector<int>> grid(n, vector<int>(m, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> grid[i][j];}}vector<vector<bool>> visited(n, vector<bool>(m, false));int result = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (!visited[i][j] && grid[i][j] == 1) {result++; dfs(grid, visited, i, j); }}}cout << result << endl;
}
  1. 岛屿数量 广搜

注意广搜的两种写法,第一种写法为什么会超时, 如果自己做的录友,题目通过了,也要仔细看第一种写法的超时版本,弄清楚为什么会超时,因为你第一次 幸运 没那么想,第二次可就不一定了。

代码随想录

#include <iostream>
#include <vector>
#include <queue>
using namespace std;int dir[4][2] = {0, 1, 1, 0, -1, 0, 0, -1}; // 四个方向
void bfs(const vector<vector<int>>& grid, vector<vector<bool>>& visited, int x, int y) {queue<pair<int, int>> que;que.push({x, y});visited[x][y] = true; // 只要加入队列,立刻标记while(!que.empty()) {pair<int ,int> cur = que.front(); que.pop();int curx = cur.first;int cury = cur.second;for (int i = 0; i < 4; i++) {int nextx = curx + dir[i][0];int nexty = cury + dir[i][1];if (nextx < 0 || nextx >= grid.size() || nexty < 0 || nexty >= grid[0].size()) continue;  // 越界了,直接跳过if (!visited[nextx][nexty] && grid[nextx][nexty] == 1) {que.push({nextx, nexty});visited[nextx][nexty] = true; // 只要加入队列立刻标记}}}
}int main() {int n, m;cin >> n >> m;vector<vector<int>> grid(n, vector<int>(m, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> grid[i][j];}}vector<vector<bool>> visited(n, vector<bool>(m, false));int result = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (!visited[i][j] && grid[i][j] == 1) {result++; // 遇到没访问过的陆地,+1bfs(grid, visited, i, j); // 将与其链接的陆地都标记上 true}}}cout << result << endl;
}
  1. 岛屿的最大面积

本题就是基础题了,做过上面的题目,本题很快。

代码随想录

#include <iostream>
#include <vector>
using namespace std;int count;
int dir[4][2] = {0, 1, 1, 0, -1, 0, 0, -1}; // 四个方向
void dfs(vector<vector<int>>& grid, vector<vector<bool>>& visited, int x, int y) {if (visited[x][y] || grid[x][y] == 0) return; // 终止条件:访问过的节点 或者 遇到海水visited[x][y] = true; // 标记访问过count++;for (int i = 0; i < 4; i++) {int nextx = x + dir[i][0];int nexty = y + dir[i][1];if (nextx < 0 || nextx >= grid.size() || nexty < 0 || nexty >= grid[0].size()) continue;  // 越界了,直接跳过dfs(grid, visited, nextx, nexty);}
}int main() {int n, m;cin >> n >> m;vector<vector<int>> grid(n, vector<int>(m, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> grid[i][j];}}vector<vector<bool>> visited = vector<vector<bool>>(n, vector<bool>(m, false));int result = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (!visited[i][j] && grid[i][j] == 1) {count = 0; // 因为dfs处理当前节点,所以遇到陆地计数为0,进dfs之后在开始从1计数dfs(grid, visited, i, j); // 将与其链接的陆地都标记上 trueresult = max(result, count);}}}cout << result << endl;
}

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

相关文章:

  • 阎良网站建设app软件开发技术
  • 音乐门户网站模板杭州思拓网站建设
  • 网站开发 加二维扫码大理北京网站建设
  • 中国建设企业银行官网站邹城市建设局网站
  • 在车子男女做的视频网站软文范例大全500
  • 哔哩哔哩视频大全优化企业网站排名要多少钱
  • 石做视频网站需要牌照无限空间 网站
  • 设计权限系统
  • 具有口碑的柳州网站建设哪家好微商怎么加好友增加大量客源
  • 学习网站建设的心得计算机动漫制作专业
  • 上海最大的网站建设php 数据库转wordpress
  • 乐山市建设局官方网站如何搜网站
  • 网站维护的内容有哪些加工网袋的设备多少钱
  • 美妆企业网站模板如何建设一个新的网站
  • 嘉祥做网站潍坊百度网站建设
  • 万户做网站好不好金融企业网站整站源码
  • 服装网站建设课程设计公司资质等级
  • 飞行时代网站建设南昌网站建设开发团队
  • 网站设计报告模板及范文互联网推广广告
  • 做网站怎么赚流量国企央企招聘2022年
  • 给城市建设提议献策的网站燕窝网站怎么做的
  • 杭州网站设计网站wordpress插件下载方法
  • 深圳网站快速备案苏州制作网页找哪家
  • 受欢迎的昆明网站建设网站备份了怎么恢复
  • 西安商城网站搭建网络营销方法选择
  • 网站qq链接怎么做山东网站建设标准
  • seo网站描述wordpress 修改文字
  • 东八区网站建设完整app开发流程
  • 做药公司的网站前置审批wordpress 栏目排版
  • 自己在家怎么做网站服务器做模版网站需要租服务器吗