zoukankan      html  css  js  c++  java
  • 【单源最短路】dijstra poj 1502

    #include <cstdio>
    #include <iostream>
    #include <stdlib.h>
    #include <memory.h>
    using namespace std;
    const int maxn=102;
    const int inf=1<< 30;
    int s[maxn][maxn],dis[maxn],visit[maxn],n;
    void dijstra()
    {
        memset(visit,0,sizeof(visit));
        for(int i=1;i<=n;i++)
        dis[i]=s[1][i];
        for(int j=1;j<=n;j++)
        {
            int t=-1;
            for(int i=1;i<=n;i++)
            {
                if(!visit[i] && (dis[i]<dis[t]||t==-1))
                t=i;
            }
            visit[t]=1;
            for(int i=1;i<=n;i++)
            {
                if(!visit[i] && s[i][t] && dis[i]>dis[t]+s[t][i])
                dis[i]=dis[t]+s[t][i];
            }
        }
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        s[i][i]=0;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=i-1;j++)
            {
                char ch[20];
                scanf("%s",ch);
                if(ch[0]=='x')s[j][i]=s[i][j]=inf;
                else s[i][j]=s[j][i]=atoi(ch);
            }
        }
        dijstra();
        int ans=-1;
        for(int i=1;i<=n;i++)
        {
            if(ans==-1 || dis[i]>ans)
            ans=dis[i];
        }
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    【简】题解 AWSL090429 【市场】
    【简】题解 AWSL090429 【噪音】
    差分约束
    凸包模板
    杂模板
    后缀数组刷题
    Trie刷题
    字符串模板
    网络流建模专题
    组合数模板
  • 原文地址:https://www.cnblogs.com/balfish/p/4015158.html
Copyright © 2011-2022 走看看