Dirjkstra
Description
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的更多相关文章
随机推荐
- 解决wxpy获取不到指定群聊对象的情况
我们可以通过Bot.friends 以及Bot.groups 来获取到所有的好友以及聊天群,这里需要注意的是,聊天群需要保存到通讯录中,不然可能会出现找不到聊天群的情况. 摘自:http://www. ...
- Centos7部署jenkins
1. 下载rpm包: a) 下载地址:https://pkg.jenkins.io/redhat-stable/ b) 点选一个下载即可,例如点选:“jen ...
- Unity 读取Json常用的两种方式
使用的是Litjson 1.读取本地Json public void ReadJson() { StreamReader streamReader = new StreamReader(Applica ...
- C#中向ListView控件中添加一行数据
C#中向ListView控件中添加一行数据: ,先声明一个ListViewItem: ListViewItem item = new ListViewItem(); ,添加第一列数据: item.Te ...
- c++踩坑大法好 宏定义 头文件
1,c++宏定义是干啥的?防止重复引用,如何防止重复引用? //a.h //声明一个类,和其他声明 #include <iostream> class A{ public: static ...
- MTV与MVC模式
MTV模型(django) M:模型层(models.py) 负责业务对象与数据库的对象(orm) T:templates 负责如何把页面展示给用户 V:views 负责业务逻辑,并在适当的时候调用m ...
- 【C语言】移动指针
移动指针 #include<stdio.h> int main() { char *s="哈哈哈哈哈哈"; for(*s;s!="\0";s++) ...
- ios 下 select和option 无法隐藏指定元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- makecert生成证书
是要命令 makecert -r -pe -n "cn=musetowc" -$ commercial -a sha1 -b 01/01/2020 -e 01/01/2050 -c ...
- SpringMVC开发RESTful接口
概念: 什么是REST? REST是Representational State Transfer的缩写.翻译为"表现层状态转化",restful是一种接口设计风格,它不是一个协议 ...