首页 > 其他 > 详细

poj 2387 Til the Cows Come Home (最短路,dijkstra模版题)

时间:2014-02-09 23:53:00      阅读:581      评论:0      收藏:0      [点我收藏+]

题目

 

 

bubuko.com,布布扣
#define  _CRT_SECURE_NO_WARNINGS

#include<string.h>
#include<stdio.h>
#include<math.h>

const int MAXN=1010;  

#define typec int  
const typec INF=0x3f3f3f3f;//防止后面溢出,这个不能太大  
bool vis[MAXN];  
int pre[MAXN];
typec cost[MAXN][MAXN];
typec lowcost[MAXN];
void Dijkstra(int n,int beg)  
{  
    for(int i=1;i<=n;i++)  
    {  
        lowcost[i]=INF;vis[i]=false;pre[i]=-1;  
    }  
    lowcost[beg]=0;  
    for(int j=1;j<=n;j++)  
    {  
        int k=-1;  
        int Min=INF;  
        for(int i=1;i<=n;i++)  
            if(!vis[i]&&lowcost[i]<Min)  
            {  
                Min=lowcost[i];  
                k=i;  
            }  
        if(k==-1)break;  
        vis[k]=true;  
        for(int i=1;i<=n;i++)  
            if(!vis[i]&&lowcost[k]+cost[k][i]<lowcost[i])  
            {  
                lowcost[i]=lowcost[k]+cost[k][i];  
                pre[i]=k;  
            }  
    }  
}  

int main()
{
    int n,i,j,t,a,b,c;
    while(scanf("%d%d",&t,&n)!=EOF)
    {
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                cost[i][j]=(i==j)? 0:INF;

        for(i=0;i<t;i++)
        {
            scanf("%d%d%d",&a,&b,&c);
            if(cost[a][b]>c)
                cost[a][b]=cost[b][a]=c;
        }
        Dijkstra(n,n);
        printf("%d\n",lowcost[1]);
    }
    return 0;
}
View Code

poj 2387 Til the Cows Come Home (最短路,dijkstra模版题)

原文:http://www.cnblogs.com/laiba2004/p/3541990.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!