zoukankan      html  css  js  c++  java
  • POJ 2395 Prim

    Out of Hay
    Time Limit: 1000MS Memory Limit: 65536K
    Total Submissions: 11010 Accepted: 4308
    Description

    The cows have run out of hay, a horrible event that must be remedied immediately. Bessie intends to visit the other farms to survey their hay situation. There are N (2 <= N <= 2,000) farms (numbered 1..N); Bessie starts at Farm 1. She'll traverse some or all of the M (1 <= M <= 10,000) two-way roads whose length does not exceed 1,000,000,000 that connect the farms. Some farms may be multiply connected with different length roads. All farms are connected one way or another to Farm 1.

    Bessie is trying to decide how large a waterskin she will need. She knows that she needs one ounce of water for each unit of length of a road. Since she can get more water at each farm, she's only concerned about the length of the longest road. Of course, she plans her route between farms such that she minimizes the amount of water she must carry.

    Help Bessie know the largest amount of water she will ever have to carry: what is the length of longest road she'll have to travel between any two farms, presuming she chooses routes that minimize that number? This means, of course, that she might backtrack over a road in order to minimize the length of the longest road she'll have to traverse.
    Input

    * Line 1: Two space-separated integers, N and M.

    * Lines 2..1+M: Line i+1 contains three space-separated integers, A_i, B_i, and L_i, describing a road from A_i to B_i of length L_i.
    Output

    * Line 1: A single integer that is the length of the longest road required to be traversed.
    Sample Input

    3 3
    1 2 23
    2 3 1000
    1 3 43
    Sample Output

    43
    Hint

    OUTPUT DETAILS:

    In order to reach farm 2, Bessie travels along a road of length 23. To reach farm 3, Bessie travels along a road of length 43. With capacity 43, she can travel along these roads provided that she refills her tank to maximum capacity before she starts down a road.
    Source

    USACO 2005 March Silver


    <span style="color:#6600cc;">/**********************************************
    
          author   :    Grant Yuan
          time     :    2014.7.30
          algorithm:    Prim
          source   :    PKU 2395
    
    **********************************************/
    
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<queue>
    #include<algorithm>
    #define MAX 2003
    #define INF 0x7fffffff
    
    using namespace std;
    
    int cost[MAX][MAX];
    int n,m,l,a,b;
    int mincost[MAX];
    bool used[MAX];
    int ans=0;
    
    void prim()
    {
        for(int i=1;i<=n;i++)
        {
            mincost[i]=cost[1][i];
            used[i]=false;
        }
        mincost[1]=0;
        ans=0;
       for(int i=1;i<=n;i++){
            int temp=INF;
            int v=1;
            for(int j=1;j<=n;j++)
            {
                if(!used[j]&&mincost[j]<temp)
                    temp=mincost[j],v=j;
            }
            used[v]=true;
            if(mincost[v]>ans)
                ans=mincost[v];
            for(int j=1;j<=n;j++)
            {
                if(!used[j]) mincost[j]=min(mincost[j],cost[v][j]);
            }
       }
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            cost[i][j]=INF;
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d%d",&a,&b,&l);
            if(l<cost[a][b]) cost[a][b]=cost[b][a]=l;}
        prim();
        printf("%d
    ",ans);
        return 0;
    }
    </span>



  • 相关阅读:
    allocation size overflow
    数据库隔离级别深入理解(ORACLE)
    查看Orcale数据里的表是否有变化
    意外发现抽象类的构造器
    C语言学习快速笔记
    由javascript的闭包引申到程序语言编译上的自由变量作用域的考量
    easyui的datagrid的列checkbox自定义增加disabled选项
    数据库连接不关闭造成的问题以及RowSet的使用
    Quartz的JobDetail没有触发器指向时会被删除的问题
    发现浏览器开发工具的一个小问题
  • 原文地址:https://www.cnblogs.com/codeyuan/p/4254469.html
Copyright © 2011-2022 走看看