![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
路过南京
这个作者很懒,什么都没留下…
展开
-
如何用C++写Floyd求最短路 数组实现版本!!!
实现原理其实就是动态规划 !!!迪杰斯特拉实现原理是贪心,弗洛伊德实现原理就是动态规划。例题: #include <bits/stdc++.h>using namespace std;const int N=210,INF=1e9;int dist[N][N];//初始化数组 void init(int n){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) dist[i...原创 2020-09-04 19:52:02 · 163 阅读 · 0 评论 -
如何用C++写Dijkstra求最短路 数组实现版本!!!
最近重学C++算法,树与图的最小路径算法的代码学习。常用的数据结构书上讲两种最短路径方法分别是(朴素迪杰斯特拉算法(Dijkstra)和弗洛伊德(Floyd)算法)。我也暂时只准备记录更新这两种数据结构方法。看题目:给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。例如: 3 3 1 2 2 2 3 1 1 3...原创 2020-09-04 19:03:06 · 224 阅读 · 0 评论 -
图之最小生成树Kruskal方法c++实现
克鲁斯卡尔算法克鲁斯卡尔算法的基本思想是以边为主导地位,始终选择当前可用(所选的边不能构成回路)的最小权植边。所以Kruskal算法的第一步是给所有的边按照从小到大的顺序排序。这一步可以直接使用库函数qsort或者sort。接下来从小到大依次考察每一条边(u,v)。具体实现过程如下:<1> 设一个有n个顶点的连通网络为G(V,E),最初先构造一个只有n个顶点,没有边的非连通...原创 2019-12-07 09:17:43 · 304 阅读 · 0 评论 -
图之最小生成树prime方法c++实现
算法描述:普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稠密网的最小生成树,时间复杂度为O(n*n)。算法过程:1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找出A中顶点关联的边权值最小的那个(设为v),将此顶点从B中删除,加入集合A...原创 2019-12-06 19:46:31 · 592 阅读 · 0 评论 -
NOIP:2的幂次方表示
任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1...原创 2019-09-07 10:46:05 · 587 阅读 · 0 评论