日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

uva 10099 The Tourist Guide

發(fā)布時(shí)間:2024/9/20 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uva 10099 The Tourist Guide 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DP(仿照Floyd)

uva 10048 Audiophobia? 一樣的題目啊

這次是要找s到t的所有路徑中,最小邊的最大值,還是仿照Floyd,不過狀態(tài)轉(zhuǎn)移方程改一下,而且建圖初始化也改一下就可以了(題目說了每條邊的權(quán)都大于1)

建圖鄰接矩陣初始化為,d[i][j]=g[i][j],不存在的邊用0表示

狀態(tài)轉(zhuǎn)移方程

d[i][j]=min( d[i][j] , max(d[i][k] , d[k][j]) );

題目有一個(gè)很隱晦的地方就是,每次送旅客過去,導(dǎo)游也是要過去的(然后他自己再回來),所以沒一趟導(dǎo)游都占了一個(gè)位置,如果大家覺得sample不對的話,那就是一個(gè)小問題了

?

#include <cstdio> #include <cstring> #define N 110 int d[N][N]; int n,m,s,t,num;int min(int a ,int b) { return a<b?a:b; } int max(int a, int b) { return a>b?a:b; } void DP() {for(int k=1; k<=n; k++)for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)d[i][j]=max(d[i][j] , min(d[i][k],d[k][j])); } int main() {int T=0;while(scanf("%d%d",&n,&m)!=EOF){if(!n && !m) break;memset(d,0,sizeof(d));for(int i=1; i<=m; i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);d[u][v]=d[v][u]=w;}scanf("%d%d%d",&s,&t,&num);DP();T++;printf("Scenario #%d\n",T);d[s][t]--; //導(dǎo)游占了一個(gè)位置,實(shí)際上每次送過去的游客人數(shù)要少一位if((num%d[s][t]) == 0)printf("Minimum Number of Trips = %d\n",num/d[s][t]);elseprintf("Minimum Number of Trips = %d\n",(num/d[s][t])+1);printf("\n");}return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的uva 10099 The Tourist Guide的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。