UVA - 10099 The Tourist Guide

来源:互联网 发布:机房 蓝屏 网络攻击 编辑:程序博客网 时间:2024/05/20 09:22
题意:跟之前的一题Floyd是一样的,就是求路径中的最小值最大,然后求来回的次数,记住导游也要考虑进去
#include <iostream>#include <cstdio>#include <cstring>#include  <algorithm>using namespace std;const int MAXN = 110;int dp[MAXN][MAXN];int n,r,a,b,t;int main(){    int cas = 1;    while (scanf("%d%d",&n,&r) != EOF && n+r){        memset(dp,-1,sizeof(dp));        for (int i = 1; i <= n; i++)            dp[i][i] = 0;        while (r--){            scanf("%d%d%d",&a,&b,&t);            dp[a][b] = dp[b][a] = t;        }        for (int k = 1; k <= n; k++)            for (int i = 1; i <= n; i++)                for (int j = 1; j <= n; j++)                    dp[i][j] = max(dp[i][j],min(dp[i][k],dp[k][j]));        scanf("%d%d%d",&a,&b,&t);        int ans = dp[a][b] -1;        printf("Scenario #%d\n",cas++);         printf("Minimum Number of Trips = %d\n\n",t/ans+(t%ans?1:0));    }        return 0;}



原创粉丝点击