zoukankan      html  css  js  c++  java
  • poj 2387 Til the Cows Come Home (最短路,dijkstra模版题)

    题目

    #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
    ",lowcost[1]);
        }
        return 0;
    }
    View Code
    一道又一道,好高兴!
  • 相关阅读:
    java 读取src下的配置文件
    图书管理系统
    StaticDemo
    MatixDemo
    Magics
    GetPrime
    ConWithThis
    TestTHIS
    ConstructorOverLoad
    Sequence
  • 原文地址:https://www.cnblogs.com/laiba2004/p/3541990.html
Copyright © 2011-2022 走看看