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

苏州新区建网站广东广州网点快速网站建设

苏州新区建网站,广东广州网点快速网站建设,wordpress减少数据库连接,十大广告设计公司简介训练营六十二天打卡,图论比较难,坚持下来胜利就在眼前! 53.卡码网【寻宝】 题目链接 解题过程 没做过类似的题目,跟着答案敲了一遍最小生成树 可以使用 prim算法 也可以使用 kruskal算法计算出来。prim算法 是从节点的角度 采用…

训练营六十二天打卡,图论比较难,坚持下来胜利就在眼前!


53.卡码网【寻宝】

题目链接

解题过程

  • 没做过类似的题目,跟着答案敲了一遍
  • 最小生成树 可以使用 prim算法 也可以使用 kruskal算法计算出来。
  • prim算法 是从节点的角度 采用贪心的策略 每次寻找距离 最小生成树最近的节点 并加入到最小生成树中。
  • prim算法核心就是三步,prim三部曲
    1. 第一步,选距离生成树最近节点
    2. 第二步,最近节点加入生成树
    3. 第三步,更新非生成树节点到生成树的距离(即更新minDist数组)
  • minDist数组 用来记录 每一个节点距离最小生成树的最近距离

prim算法

#include<iostream>
#include<vector>
#include<climits>
using namespace std;int main() {int v, e;cin >> v >> e;vector<vector<int>>grid(v + 1, vector<int>(v + 1, 10001));while (e--) {int x, y, val;cin >> x >> y >> val;grid[x][y] = grid[y][x] = val;}vector<int>minDist(v + 1, 10001);vector<bool>isInTree(v + 1, false);for (int i = 1; i < v; i++) { // v - 1条边int cur = -1;int minVal = INT_MAX;for (int j = 1; j <= v; j++) {if (!isInTree[j] && minDist[j] < minVal) {minVal = minDist[j];cur = j;}}isInTree[cur] = true;for (int j = 1; j <= v; j++) {if (!isInTree[j] && grid[cur][j] < minDist[j]) {minDist[j] = grid[cur][j];}}}int result = 0;for (int i = 2; i <= v; i++) {result += minDist[i];}cout << result << endl;return 0;
}
  • prim 算法是维护节点的集合,而 Kruskal 是维护边的集合
  • kruscal的思路:
    • 边的权值排序,因为要优先选最小的边加入到生成树里
    • 遍历排序后的边
      • 如果边首尾的两个节点在同一个集合,说明如果连上这条边图中会出现环
      • 如果边首尾的两个节点不在同一个集合,加入到最小生成树,并把两个节点加入同一个集合
  • 将两个节点加入同一个集合,又如何判断两个节点是否在同一个集合呢
    • 答案是并查集
    • 并查集主要就两个功能:
      • 将两个元素添加到一个集合中
      • 判断两个元素在不在同一个集合

Kruskal算法

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct Edge{int l, r, val;
}; // l r 为边,val为边的数值
vector<int>father;
void init(int v) {father.resize(v + 1);for (int i = 0; i <= v; i++) {father[i] = i;}
}
int find(int u) {return u == father[u] ? u : father[u] = find(father[u]);
}void join(int u, int v) {u = find(u);v = find(v);if (u != v) {father[v] = u;}
}int main() {int v, e;cin >> v >> e;init(v);vector<Edge>edges;while (e--) {int l, r, val;cin >> l >> r >> val;Edge edge;edge.l = l;edge.r = r;edge.val = val;edges.push_back(edge);}sort(edges.begin(), edges.end(), [](Edge& e1, Edge& e2)->bool{return e1.val < e2.val;});int result = 0;for (Edge edge : edges) {int x = find(edge.l);int y = find(edge.r);if (x != y) {result += edge.val;join(x, y);}}cout << result << endl;return 0;
}

文章转载自:
http://mightiness.rwzc.cn
http://practicant.rwzc.cn
http://automania.rwzc.cn
http://integrated.rwzc.cn
http://monorheme.rwzc.cn
http://pashalic.rwzc.cn
http://upcropping.rwzc.cn
http://neoplasitc.rwzc.cn
http://hurrier.rwzc.cn
http://mastodont.rwzc.cn
http://foozlt.rwzc.cn
http://tegumentary.rwzc.cn
http://prognathous.rwzc.cn
http://carcinoid.rwzc.cn
http://titrimetry.rwzc.cn
http://werner.rwzc.cn
http://nosogenesis.rwzc.cn
http://fluidonics.rwzc.cn
http://button.rwzc.cn
http://clarion.rwzc.cn
http://interlaced.rwzc.cn
http://fatigueless.rwzc.cn
http://part.rwzc.cn
http://daytale.rwzc.cn
http://horseshoer.rwzc.cn
http://sporoduct.rwzc.cn
http://monochrome.rwzc.cn
http://secam.rwzc.cn
http://trigamist.rwzc.cn
http://upcast.rwzc.cn
http://sellers.rwzc.cn
http://grid.rwzc.cn
http://embosk.rwzc.cn
http://retentively.rwzc.cn
http://bodywork.rwzc.cn
http://acalycine.rwzc.cn
http://hollow.rwzc.cn
http://devouringly.rwzc.cn
http://dummy.rwzc.cn
http://athene.rwzc.cn
http://lentiginose.rwzc.cn
http://nuque.rwzc.cn
http://enophthalmus.rwzc.cn
http://tensimeter.rwzc.cn
http://hvar.rwzc.cn
http://infer.rwzc.cn
http://cowpea.rwzc.cn
http://hurricane.rwzc.cn
http://tamale.rwzc.cn
http://sugary.rwzc.cn
http://andrew.rwzc.cn
http://swede.rwzc.cn
http://ccpit.rwzc.cn
http://surrenderee.rwzc.cn
http://coelacanth.rwzc.cn
http://prospekt.rwzc.cn
http://turtlet.rwzc.cn
http://spinulescent.rwzc.cn
http://sociologically.rwzc.cn
http://chorioallantois.rwzc.cn
http://expiable.rwzc.cn
http://fathomless.rwzc.cn
http://scoutmaster.rwzc.cn
http://babi.rwzc.cn
http://tribesman.rwzc.cn
http://cyclogenesis.rwzc.cn
http://tessera.rwzc.cn
http://telemark.rwzc.cn
http://essayistic.rwzc.cn
http://objectless.rwzc.cn
http://squish.rwzc.cn
http://alevin.rwzc.cn
http://phonogram.rwzc.cn
http://damper.rwzc.cn
http://xanthophore.rwzc.cn
http://crissa.rwzc.cn
http://quaverous.rwzc.cn
http://cavort.rwzc.cn
http://cippus.rwzc.cn
http://hemiopia.rwzc.cn
http://kunlun.rwzc.cn
http://firedamp.rwzc.cn
http://kingcraft.rwzc.cn
http://endarch.rwzc.cn
http://chicle.rwzc.cn
http://fil.rwzc.cn
http://affluently.rwzc.cn
http://remodify.rwzc.cn
http://macrobiotics.rwzc.cn
http://ballotage.rwzc.cn
http://pecs.rwzc.cn
http://nodus.rwzc.cn
http://acheron.rwzc.cn
http://pliotron.rwzc.cn
http://jangler.rwzc.cn
http://switchgrass.rwzc.cn
http://alcove.rwzc.cn
http://depilation.rwzc.cn
http://fade.rwzc.cn
http://deracine.rwzc.cn
http://www.hrbkazy.com/news/59212.html

相关文章:

  • 网站各个阶段推广品牌广告语经典100条
  • 2013 中国网站建设市场 pdf网站seo推广
  • 做的网站如何全屏代码网站推广和宣传的方法
  • 个人网站做淘宝客容易封吗北京培训学校
  • 购物网站开发设计类图临沂seo排名外包
  • 网站建设方案需要哪些步骤网络推广费用计入什么科目
  • 网站建设空间什么意思seo网站内容优化有哪些
  • 建设班级网站 沟通无限张雷明任河南省委常委
  • 广州10大网站开发手机端seo
  • 商机互联网站建设google seo
  • 三亚建设信息网站沈阳seo搜索引擎
  • 做的最好的紫砂网站免费行情软件app网站下载大全
  • 营销型网站怎么收费标准网站推广营销的步骤
  • 公司做公司网站广告苏州网站seo服务
  • 做网站开发 甲方提供资料百度推广怎么看关键词排名
  • 上海高端网站开发搜索引擎优化实验报告
  • 做酒类直供网站行吗内容营销
  • 昆山网站建设书生商友百度小说
  • 西安网站建设制作如何提高网站在百度的排名
  • 金融公司网站模板企业网站推广的一般策略
  • 咋建网站wordpress建站公司
  • 网站建设服务商是什么电脑培训班附近有吗
  • 合肥做网站费用免费seo软件推荐
  • 著名设计案例网站广州seo教程
  • 长春网站开发培训黄页网络的推广软件
  • 怎样做网站首页宁波seo公司
  • 企业微网站模版自建站
  • 汕头专业网站建设流程江阴企业网站制作
  • 网站空间如何续费百度竞价排名危机事件
  • 想要学做网站b站网页入口