📄 迪杰斯特拉 最短路径.txt
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
using namespace std;
#define NMAX 102
#define MAX 1000000
int cost[NMAX][NMAX];
int visited[NMAX];
int luchen[NMAX];
void cal(int num)
{
int totle=0,i,j,k,min,minnum;
memset(visited,0,sizeof(visited));
for(i=1;i<=num;i++) luchen[i]=cost[i][num];
visited[num]=1;
for(i=1;i<num;i++)
{
min=MAX;
for(k=1;k<=num;k++)
{
if(visited[k]==0)
{
if(min>luchen[k])
{
min=luchen[k];
minnum=k;
}
}
}
visited[minnum]=1;
for(j=1;j<=num;j++)
{
if(luchen[j]>cost[j][minnum]+luchen[minnum]&&visited[j]==0)
luchen[j]=cost[j][minnum]+luchen[minnum];
}
}
}
int main()
{
int num,i,j;
while(scanf("%d",&num)!=EOF)
{
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++) cin>>cost[i][j];
}
cal(num);
cout<<luchen[1]<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -