poj3268(dijkstra)

链接:点击打开链接

题意:给定一些路线和花费,然后N头牛,每头牛按照最短路走到X处,并用最短路返回,问这些牛中所有路线里最大值是多少

代码:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int INF=0x3f3f3f3f;
int n,m,x;
int s[1005][1005];
int d1[1005],d2[1005],vis[1005];
void change(){
    int i,j;
    for(i=1;i<=n;i++)
    for(j=1;j<=i;j++)
    swap(s[i][j],s[j][i]);
}                                               //邻接矩阵转置
void dijkstra(int S,int d[1005]){
    int i,j,u,v;
    for(i=1;i<=n;i++)
    d[i]=INF,vis[i]=0;
    d[S]=0;
    while(1){
        u=-1;
        for(i=1;i<=n;i++){
            if(vis[i]==0&&(u==-1||d[i]

你可能感兴趣的:(图论)