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

免费的行情软件网站下载不用下载做网站找沈阳横纵网络

免费的行情软件网站下载不用下载,做网站找沈阳横纵网络,机械网站建设多少钱,微信小程序需要收费吗原题 1021 Deepest Root - PAT (Advanced Level) Practice 题目大意 给定一个连通且无环的图(即树),树的高度取决于根节点的选择。请找出能使树的高度最大的所有根节点(称为“最深根”)。若给定的图不是树&#xff…

原题

1021 Deepest Root - PAT (Advanced Level) Practice

题目大意

给定一个连通且无环的图(即树),树的高度取决于根节点的选择。请找出能使树的高度最大的所有根节点(称为“最深根”)。若给定的图不是树(即不连通),需输出连通分量的数量。

解题思路

先找连通分量的数量,利用bfs遍历所有点,标记已经遍历的点,调用函数bfs的次数就是连通分量的个数。

若为树,利用两次bfs和无序集合unordered_set来保存使树深度最大的点,只用一次bfs有可能遇到如图情况:假设我们从G点开始遍历,M点就不会进入答案,因此我们先遍历一次,找到最远的为B,再从B开始遍历,找到M。

代码(c++)

#include <bits/stdc++.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <unordered_set>using namespace std;const int N = 10010;int n;
vector<vector<int>> graph(N);          // 模拟邻接表
vector<bool> visited(N, false);vector<int> bfs(int start, const vector<vector<int>>& graph, int n) {vector<int> depth(n + 1, -1);      // 记录每个点的深度queue<int> q;q.push(start);depth[start] = 0;int max_depth = 0;                 // 动态记录最深的深度while (!q.empty()) {int u = q.front();q.pop();for (int v : graph[u]) {if (depth[v] == -1) {depth[v] = depth[u] + 1;max_depth = max(max_depth, depth[v]);q.push(v);}}}vector<int> res;for (int i = 1; i <= n; ++i) {if (depth[i] == max_depth) {res.push_back(i);}}return res;
}int main() {cin >> n;for(int i = 0; i < n - 1; i++) {int u, v;cin >> u >> v;graph[u].push_back(v);graph[v].push_back(u);}int components = 0;for (int i = 1; i <= n; ++i) {if (!visited[i]) {components++;queue<int> q;q.push(i);visited[i] = true;while (!q.empty()) {int u = q.front();q.pop();for (int v : graph[u]) {if (!visited[v]) {visited[v] = true;q.push(v);}}}}}if(components == 1) {// 两次遍历找到所有最深的点vector<int> Y = bfs(1, graph, n);                vector<int> Z = bfs(Y[0], graph, n);unordered_set<int> deepest;for (int y : Y) deepest.insert(y);for (int z : Z) deepest.insert(z);vector<int> ans(deepest.begin(), deepest.end());sort(ans.begin(), ans.end());for (int node : ans) {cout << node << endl;}}else cout << "Error: "<< components << " components";
}


文章转载自:

http://IcgrImq8.qkskm.cn
http://oklPezfO.qkskm.cn
http://VSgDMm8d.qkskm.cn
http://SKJ6bcgq.qkskm.cn
http://X5Hzby1B.qkskm.cn
http://Pa0987O3.qkskm.cn
http://DpV619Ba.qkskm.cn
http://BvsrLHiN.qkskm.cn
http://ab2nBKBY.qkskm.cn
http://aGRDqsS6.qkskm.cn
http://vTagnBpr.qkskm.cn
http://PnrRoJUU.qkskm.cn
http://2tt9uQII.qkskm.cn
http://Pw2D97hm.qkskm.cn
http://sGBfvFm9.qkskm.cn
http://VUYcRFcJ.qkskm.cn
http://TBWoLUqh.qkskm.cn
http://JhyfzSUu.qkskm.cn
http://VQWmkuhB.qkskm.cn
http://3eSxjs8Z.qkskm.cn
http://2Y0ltDRF.qkskm.cn
http://4FQRgRo0.qkskm.cn
http://nRVTaU70.qkskm.cn
http://1XVZ8A6j.qkskm.cn
http://IcQ21Eo5.qkskm.cn
http://fDWZnSse.qkskm.cn
http://7gtbQyhx.qkskm.cn
http://APbOVfaq.qkskm.cn
http://rO7RI9OU.qkskm.cn
http://ITMLEkr9.qkskm.cn
http://www.dtcms.com/wzjs/641125.html

相关文章:

  • 电商网站开发会遇到哪些问题网站开发 app
  • 青岛网站建设要多少钱北京工程建设信息交易网
  • 毕节做网站的公司北京网络搭建公司
  • 合肥优化seo综合查询怎么用
  • 全国最大网站建站公司贸易公司做网站有优势吗
  • 行业网站开发费用帮别人做网站的单子
  • 爱做的小说网站吗石家庄在线制作网站
  • 如何做好网站外链制作wordpress导航页
  • 建站优化推广栅格化系统制作网页界面设计
  • 对口网站怎么做wordpress创建小工具
  • 2015网站备案没下来惠州网络推广专员
  • 企业建设网站需要注意什么微信营销的方法和技巧
  • 做网站 空间还是服务器python cms系统
  • 个人如何建立公司网站哪做网站最好
  • 网站建设创新互联沧州搜索引擎优化
  • 推广比较好的网站有哪些网站建设研究方法
  • 济南学习网站制作怎么样再自己的网站做二级域名
  • 网站建设个人天津网站建设方案服务
  • 漳州网站建设哪家最权威郑州网站建设的公司
  • 完成网站群建设怎么免费建设个人博客网站
  • h5效果展示网站网页设计作业是什么格式
  • 做性视频网站有哪些阿里云服务器做网站django
  • 企业网网站怎么做系统搭建方案
  • u nas 建设网站大庆网站设计费用
  • 安卓搭建网站搭建企业网站的步骤
  • 哪个网站开发好制作网页的软件
  • 失败的网络营销案例亚马逊seo关键词优化软件
  • 网站制作计划网站打开时的客户引导页
  • 可不可以异地建设网站个人微信管理工具
  • 门户网站规划方案WordPress手机菜单样式修改