Description

给定n个点,m条有向边
求每个点到1号点的最短距离

Input

第一行两个数为n,m,n表示顶点个数,m表示边的条数。 (1 ≤ n, m ≤ 100 )

接下来m行,每一行有三个数t1、t2 和t3,表示顶点t1到顶点t2的路程是t3。请注意这些t1->t2是单向的。

Output

输出N个数,分别为每个点到1号点的距离

Sample Input

6 9
1 2 1
1 3 12
2 3 9
2 4 3
3 5 5
4 3 4
4 5 13
4 6 15
5 6 4

Sample Output

0 1 8 4 13 17

 #include<iostream>
#define inf 0x3f3f3f3f
int book[],e[][],dis[];
using namespace std;
int main(){
int n,m;
cin>>n>>m;//录入
for(int i=;i<=n;i++){//初始化
for(int j=;j<=n;j++){
if(i==j)
e[i][j]=;
else
e[i][j]=inf;
}
}
for(int i=;i<=m;i++){//录入
int a,b,c;
cin>>a>>b>>c;
e[a][b]=c;
}
for(int i=;i<=n;i++){//初始化
dis[i]=e[][i];
}
int u;
book[]=;
for(int i=;i<=n-;i++){//进行n-1次
int mina=inf;
for(int j=;j<=n;j++){//选出离源点最近的点(这个点目前还不在book集合里)
if(book[j]==&&dis[j]<mina){
mina=dis[j];
u=j;
}
}
book[u]=;//将这个点放进book集合里
for(int v=;v<=n;v++){//用这个点来松弛各个点
if(e[u][v]<inf){//只有这个点到其他点有路才可以松弛
if(dis[v]>dis[u]+e[u][v])
dis[v]=dis[u]+e[u][v];
}
}
}
for(int i=;i<=n;i++){//输出
cout<<dis[i]<<' ';
}
return ;
}
这是没有进行优化的,目前复杂度还挺高的,数据大的话,就会超时了,一般都用优化之后的,优化的以后再补充吧!!!
O(∩_∩)O

Dirjkstra的更多相关文章

随机推荐

  1. 后台执行linux命令

    /** * * 方法说明:移植执行linux命令 * * @param cmdStr 需要执行的linux命令 * @return 执行命令后的输出(如果是启动一个进程,则可能一直无法返回) * @t ...

  2. c#窗体进度条

    c#窗体进度条 //进度条的最大值 ; progressBar1.Maximum = Convert.ToInt32(a); ;i<progressBar1.Maximum;i++) { //进 ...

  3. java基础之 数据类型

    数据类型表示要存储在变量中的不同类型的值. 一.Java语言提供了八种基本数据类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. 1. byte byte 数据类型是8位.有 ...

  4. MySql -- unique唯一约束

    3.UNIQUE 约束 约束唯一标识数据库表中的每条记录. 创建一张测试表 CREATE TABLE `test`.`info`( `id` ) UNSIGNED NOT NULL AUTO_INCR ...

  5. mysql之路4

    MYSQL之约束 2.主键约束 349行cnname换成cname

  6. [ASP.NET]Web网站与Web应用程序区别

    [ASP.NET]Web网站与Web应用程序区别   本文链接:https://blog.csdn.net/a954553391/article/details/86403521 前言:在项目开发中, ...

  7. C++-HDU1000,1001,1002-格式是真的坑

    #include <cstdio> int main(){ for(int a,b;~scanf("%d%d",&a,&b);printf(" ...

  8. 2.10 webdriver中 js 使用

    来源: 使用Webdriver执行JS小结  http://lijingshou.iteye.com/blog/2018929 selenium常用的js总结  http://www.cnblogs. ...

  9. spring注解注入:<context:component-scan>以及其中的context:include-filter>和 <context:exclude-filter>的是干什么的?

    转自:https://www.cnblogs.com/vanl/p/5733655.html spring注解注入:<context:component-scan>使用说明   sprin ...

  10. 解决async 运行多线程时报错RuntimeError: There is no current event loop in thread 'Thread-2'

    原来使用: loop = asyncio.get_event_loop()task = asyncio.ensure_future(do_work(checker))loop.run_until_co ...