zoukankan      html  css  js  c++  java
  • POJ 2387 Til the Cows Come Home(dij+邻接矩阵)

    ( ̄▽ ̄)"

    //dijkstra算法;
    //这题建邻接矩阵的时候有坑(先读入边后读入点),还有重边;
    #include<iostream>
    #include<cstdio>
    using namespace std;
    const int INF=10e7;
    const int MAXN=2010;
    int k,minn;
    int cost[MAXN][MAXN];
    int lowcost[MAXN];
    bool vis[MAXN];
    
    void dij(int n,int start)
    {
        for(int i=1;i<=n;i++)
        {
            lowcost[i]=INF;vis[i]=0;
        }
        lowcost[start]=0;
        for(int i=1;i<=n;i++)
        {
            k=-1,minn=INF;
            for(int i=1;i<=n;i++)
            {
                if(!vis[i]&&lowcost[i]<minn)
                    {minn=lowcost[i];k=i;}
            }
            if(k==-1) break;
            vis[k]=1;
            for(int i=1;i<=n;i++)
            {
                if(!vis[i]&&cost[k][i]>=0&&lowcost[k]+cost[k][i]<lowcost[i])
                {
                    lowcost[i]=lowcost[k]+cost[k][i];
                }
            }
        }
    }
    
    int main()
    {
        int t,n,a,b,c;
        while(scanf("%d%d",&t,&n)!=EOF)
        {
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                    if(i==j) cost[i][j]=0;
                    else cost[i][j]=INF;
                }
            }
            for(int i=1;i<=t;i++)
            {
                scanf("%d%d%d",&a,&b,&c);
                if(c<cost[a][b])
                { cost[a][b]=c; cost[b][a]=c; }
            }
            dij(n,n);
            printf("%d
    ",lowcost[1]);
        }
        return 0;
    }
  • 相关阅读:
    requirejs 第一个实例
    ionic + cordova 环境搭建
    免安装mysql配置
    ConcurrentHashMap
    volatile和synchronized
    zookeeper集群安装
    题目
    Nginx
    CountDownLatch
    自己总结
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5196879.html
Copyright © 2011-2022 走看看