多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > POJ 3615 Cow Hurdles (Floyd算法)

POJ 3615 Cow Hurdles (Floyd算法)

來源:程序員人生   發布時間:2015-02-27 08:12:39 閱讀次數:2805次

Cow Hurdles
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 6142   Accepted: 2752

Description

Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are practicing jumping over hurdles. They are getting tired, though, so they want to be able to use as little energy as possible to jump over the hurdles.

Obviously, it is not very difficult for a cow to jump over several very short hurdles, but one tall hurdle can be very stressful. Thus, the cows are only concerned about the height of the tallest hurdle they have to jump over.

The cows' practice room has N (1 ≤ N ≤ 300) stations, conveniently labeled 1..N. A set of M (1 ≤ M ≤ 25,000) one-way paths connects pairs of stations; the paths are also conveniently labeled 1..M. Path itravels from station Si to station Ei and contains exactly one hurdle of height Hi (1 ≤ Hi ≤ 1,000,000). Cows must jump hurdles in any path they traverse.

The cows have T (1 ≤ T ≤ 40,000) tasks to complete. Task i comprises two distinct numbers, Ai and Bi (1 ≤ Ai ≤ N; 1 ≤ Bi ≤ N), which connote that a cow has to travel from station Ai to station Bi (by traversing over one or more paths over some route). The cows want to take a path the minimizes the height of the tallest hurdle they jump over when traveling from Ai to Bi . Your job is to write a program that determines the path whose tallest hurdle is smallest and report that height.
 

Input

* Line 1: Three space-separated integers: NM, and T
* Lines 2..M+1: Line i+1 contains three space-separated integers: Si , Ei , and Hi 
* Lines M+2..M+T+1: Line i+M+1 contains two space-separated integers that describe task i: Ai and Bi

Output

* Lines 1..T: Line i contains the result for task i and tells the smallest possible maximum height necessary to travel between the stations. Output ⑴ if it is impossible to travel between the two stations.

Sample Input

5 6 3 1 2 12 3 2 8 1 3 5 2 5 3 3 4 4 2 4 8 3 4 1 2 5 1

Sample Output

4 8 ⑴

Source

USACO 2007 November Silver



題意:有1頭牛,要進行跳木樁訓練,已知有n個木樁,而且知道m對木樁之間的高度差。但是它很懶,它想盡量的跳最小的高度就完成從任意1個木樁到任意1個木樁的跳躍,給m對點,問是不是存在最小的跳躍高度使得其能夠完成跳躍,如果有就輸出最小高度;否則輸出⑴。


解析:現在要記錄路徑“長度”,實際上是最大跳躍高度,說白了就是,這條路徑上所經過的相鄰兩木樁之間的差值的最大值,由于只要能跳過這個高度差最大的,高度差小確當然能跳過去了。由因而求任意兩木樁之間的最大高度差值的最小值,所以我們可以用Floyd算法,對其進行處理,處理以后得到的終究結果就是最大高度的最小值了。




AC代碼:

#include <cstdio> #include <iostream> #include <algorithm> using namespace std; #define INF 123456789 int a[302][302]; //最大高度的最小值矩陣 int main(){ int n, m, t; int x, y, w; while(scanf("%d%d%d", &n, &m, &t)!=EOF){ for(int i=1; i<=n; i++) //初始化 for(int j=1; j<=n; j++) a[i][j] = i==j ? 0 : INF; for(int i=1; i<=m; i++){ //讀入高度差 scanf("%d%d%d", &x, &y, &w); a[x][y] = min(a[x][y], w); //更新最大高度差 } for(int k=1; k<=n; k++) //Floyd for(int i=1; i<=n; i++) for(int j=1; j<=n; j++){ a[i][j] = min(a[i][j], max(a[i][k], a[k][j])); } for(int i=1; i<=t; i++){ scanf("%d%d", &x, &y); printf("%d ", a[x][y]==INF ? ⑴ : a[x][y]); //輸出,如果還是INF,那就代表不可達,二者時之間沒有路徑滿足要求 } } return 0; }






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩精品欧美高清区 | 91最新地址永久入口 | 最近视频中文在线播放 | 国产成人精品无缓存在线播放 | 欧美成人亚洲欧美成人 | 一级毛片在线视频 | 亚洲专区视频 | 在线中文字幕播放 | 欧美性狂丰满性猛交 | 欧美操片| 黄色aa | 久久免费精品一区二区 | 最近视频中文在线播放 | 精品国产福利在线观看网址2022 | 精品国产网红福利在线观看 | 欧美18 - 19sex性| 伊人网在线视频 | 欧美人与性禽xxxx | 最近中文在线中文 | 日韩色小说 | 亚洲依依成人精品 | 亚洲一区亚洲二区亚洲三区 | 黄站在线 | 中文有码| 亚洲精品人成网在线播放影院 | 欧美自拍视频在线 | www.久久精品 | 精品国产1区| 爱爱视频日本 | 成人无遮挡毛片免费看 | 日本久久精品免视看国产成人 | 91久久九九精品国产综合 | 老妇毛片久久久久久久久 | 逼逼网站| 亚洲伊人久久大香线蕉综合图片 | 亚洲日本一区二区三区在线不卡 | 亚洲看片网站 | 在线观看成年人视频网站 | 国产成人 免费观看 | 精品视频一区二区三区四区 | 爱爱网站免费 |