Flyod 算法(两两之间的最短路径)
动态规划方法,通过相邻矩阵, 然后把最后的结果存在这么一个矩阵里面,(i,j),

#include <iostream>

#include <vector>

using namespace std;

#define M 301

#define LIM 200000000

int w[M][M],d[2][M][M];

void floyd(int g[M][M],int d[2][M][M],int n){

int i,j,k;

for(i=1;i<=n;i++){

for(j=1;j<=n;j++){

d[0][i][j]=g[i][j];

}

d[0][i][i]=0;

}        //这里是令d[0]=g

for(k=1;k<=n;k++){

for(i=1;i<=n;i++)

for(j=1;j<=n;j++){

int t1=k%2; int t2=(t1+1)%2;

d[t1][i][j]=d[t2][i][j]< d[t2][i][k]+d[t2][k][j]?d[t2][i][j]:d[t2][i][k]+d[t2][k][j];

}

}

}

2. DijStra算法(单源节点算法,一个到其他定点所有的算法)

#define M 101

#define LIM 20000000

int g[M][M],d[M],fd[2][M][M],gt[M][M],set[M];

inline void init(int d[M],int n,int s){  //初始化图

int i;

for(i=1;i<=n;i++)    d[i]=LIM;

d[s]=0;

}

inline void relax(int d[M],int u,int v,int duv){

if(d[v]>d[u]+duv)   d[v]=d[u]+duv;

}

void dijkstra(int g[M][M],int d[M],int n,int s){ //n is |V| && s is the source

init(d,n,s);

int q[M],ql=1,qf=1; //队列

int i;

for(i=1;i<=n;i++) q[ql++]=i;

while(qf!=ql){

int min=qf;

for(i=qf;i<ql;i++) if(d[q[i]]<d[q[min]]) min=i;

swap(q[qf],q[min]); //q[qf] is the min

int u=q[qf++];

for(i=1;i<=n;i++){

if(g[u][i]!=0) relax(d,u,i,g[u][i]);

}

}

}

3. BellmanFord算法
  g[][],是一个矩阵图,用于表达有向图 点之间的权重。

inline void init(int d[M],int n,int s){  //初始化图

int i;

for(i=1;i<=n;i++)    d[i]=2000000000;

d[s]=0;

}

inline void relax(int d[M],int u,int v,int duv){

if(d[v]>d[u]+duv)   d[v]=d[u]+duv;

}

void bell_man(int g[M][M],int d[M],int n,int s){ //n个结点 s为源点

int i,j,k;

init(d,n,s);

for(k=1;k<n;k++){

for(i=1;i<=n;i++)

for(j=1;j<=n;j++){

if(g[i][j]!=0) relax(d,i,j,g[i][j]);

}

}

}

Flyod 算法(两两之间的最短路径)的更多相关文章

  1. hdoj 1869 六度分离【最短路径求两两边之间最长边】

    六度分离 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. Codeforces Round #588 (Div. 2)-E. Kamil and Making a Stream-求树上同一直径上两两节点之间gcd的和

    Codeforces Round #588 (Div. 2)-E. Kamil and Making a Stream-求树上同一直径上两两节点之间gcd的和 [Problem Description ...

  3. JavaScript获取两个数之间的任意随机数

    通过JavaScript的Math.random()方法可以获取0到1之间的任意随机数,那如何获取任意给定的两个数之间的随机数呢?如获取2和5之间的随机数,5和10之间的随机数等. 由于Math.ra ...

  4. 机器学习-文本数据-文本的相关性矩阵 1.cosing_similarity(用于计算两两特征之间的相关性)

    函数说明: 1. cosing_similarity(array)   输入的样本为array格式,为经过词袋模型编码以后的向量化特征,用于计算两两样本之间的相关性 当我们使用词频或者TFidf构造出 ...

  5. 浅谈EM算法的两个理解角度

    http://blog.csdn.net/xmu_jupiter/article/details/50936177 最近在写毕业论文,由于EM算法在我的研究方向中经常用到,所以把相关的资料又拿出来看了 ...

  6. xgboost算法教程(两种使用方法)

    标签: xgboost 作者:炼己者 ------ 欢迎大家访问我的简书以及我的博客 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! ------ ...

  7. Codeforces Round #164 (Div. 2) A. Games【暴力/模拟/每个球队分主场和客场,所有球队两两之间进行一场比赛,要求双方球服颜色不能相同】

    A. Games time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  8. _DataStructure_C_Impl:Floyd算法求有向网N的各顶点v和w之间的最短路径

    #include<stdio.h> #include<stdlib.h> #include<string.h> typedef char VertexType[4] ...

  9. 算法题:给你一个自然数N,求[6, N]之内的全部素数中, 两两之和为偶数的那些偶数。

    /* 算法题:给你一个自然数N,求[6, N]之内的全部素数中. 两两之和为偶数的那些偶数. */ #include <iostream> using namespace std; voi ...

随机推荐

  1. 阿里春招Android面经

    作者:淘萄桃 链接: https://www.jianshu.com/p/a07ccaad832d 本文由作者授权发布. 笔者参加18年阿里春招,有幸最终拿到阿里offer,base杭州,岗位客户端开 ...

  2. ubuntu下mongodb常用命令

    1. 启动脚本 #!/bin/bash mongod --dbpath /usr/local/mongodb/data1 chmod +x run-mongodb 2. 关闭数据库服务 官方文档说可以 ...

  3. 第六章 JVM垃圾收集器(2)

    上一章记录了几种常见的垃圾收集器,见<第五章 JVM垃圾收集器(1)> 1.G1 说明: 从上图来看,G1与CMS相比,仅在最后的"筛选回收"部分不同(CMS是并发清除 ...

  4. 好久没做codeforces

    近期小结: 做了四场多校的比赛,感觉学到的东西好少诶,除了CLJ那场太神,其他场次的赛后几乎都能独立的AK 感觉顶多就锻炼锻炼代码能力?真是件伤感的事情... 虽然每场都,b,但只要baolaoban ...

  5. Android完全退出程序、线程

    1.先添加权限 <uses-permission android:name="android.permission.RESTART_PACKAGES" /> 2.添加A ...

  6. Android之SlideMenu实例Demo

    年末加班基本上一周都没什么时候回家写代码,回到家就想睡觉,周末难得有时间写个博客,上次写了一篇关于SlideMenu开源项目的导入问题,这次主要讲讲使用的问题,SlideMenu应用的广泛程度就不用说 ...

  7. Longest Valid Parentheses leetcode java

    题目: Given a string containing just the characters '(' and ')', find the length of the longest valid ...

  8. IOS开发之地图导航

    一.问题描述 现在很多的APP 都开始引入了地图和定位功能,包括一些餐饮业,团购等.他们都过定位和地图来让用户更加方便的根据自己的位置找到合适的目标,也就是说,现在地图定位已经不再是导航工具类,地图工 ...

  9. 比较windows phone程序启动和android程序启动原理

    windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程 ...

  10. DIRECT Project

    http://www.healthit.gov/policy-researchers-implementers/direct-project Launched in March 2010 as a p ...