zoukankan      html  css  js  c++  java
  • POJ1125 Stockbroker Grapevine(最短路)

    题目链接

    分析:

    手感不错,1A。

    直接穷举的起点, 求出不同起点到其它点最短路中最长的一条的最小值(好绕)。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    
    using namespace std;
    
    const int maxn = 100+20;
    const int INF = (1<<28);
    
    int n, G[maxn][maxn], d[maxn];
    
    int dijkstra(int s) {
        bool vis[maxn];
    
        memset(vis, 0, sizeof(vis));
        for(int i=0; i<n; i++) {
            d[i] = G[s][i];
        }
        d[s] = 0; vis[s] = true;
    
        for(int i=0; i<n-1; i++) {
            int x, m = INF;
            for(int y=0; y<n; y++) if(!vis[y] && m >= d[y]) m = d[x=y];
            vis[x] = true;
            for(int y=0; y<n; y++) if(!vis[y] && d[y] > d[x]+G[x][y]) {
                d[y] = d[x] + G[x][y];
            }
        }
    
        int ans = -1;
        for(int i=0; i<n; i++) {
            if(i == s) continue;
            ans = max(ans, d[i]);
        }
    
        return ans;
    }
    
    int main() {
        int m, v, c;
    
        while(scanf("%d", &n) == 1 && n != 0) {
            for(int i=0; i<n; i++)
                for(int j=0; j<n; j++)
                    G[i][j] = INF;
    
            for(int u=0; u<n; u++) {
                scanf("%d", &m);
                for(int i=0; i<m; i++) {
                    scanf("%d %d", &v, &c);
                    v--;
                    G[u][v] = c;
                }
            }
    
            int ans = INF, k;
            for(int i=0; i<n; i++) {
                int res = dijkstra(i);
                if(res == -1) {
                    ans = -1; break;
                }
                else if(ans > res) {
                    ans = res;
                    k = i;
                }
            }
    
            if(ans != INF) printf("%d %d
    ", k+1, ans);
            else printf("disjoint
    ");
        }
    
    
        return 0;
    }
  • 相关阅读:
    printcap
    browser-ua
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode70 爬楼梯
  • 原文地址:https://www.cnblogs.com/tanhehe/p/3248757.html
Copyright © 2011-2022 走看看