1641: [usaco2007 nov]cow hurdles 奶牛跨欄
time limit: 5 sec memory limit: 64 mb
submit: 511 solved: 336
description
farmer john 想讓她的奶牛準備郡級跳躍比賽,貝茜和她的夥伴們正在練習跨欄。她們很累,所以她們想消耗最少的能量來跨欄。 顯然,對於一頭奶牛跳過幾個矮欄是很容易的,但是高欄卻很難。於是,奶牛們總是關心路徑上最高的欄的高度。 奶牛的訓練場中有 n (1 ≤ n ≤ 300) 個站台,分別標記為1..n。所有站台之間有m (1 ≤ m ≤ 25,000)條單向路徑,第i條路經是從站台si開始,到站台ei,其中最高的欄的高度為hi (1 ≤ hi ≤ 1,000,000)。無論如何跑,奶牛們都要跨欄。 奶牛們有 t (1 ≤ t ≤ 40,000) 個訓練任務要完成。第 i 個任務包含兩個數字 ai 和 bi (1 ≤ ai ≤ n; 1 ≤ bi ≤ n),表示奶牛必須從站台ai跑到站台bi,可以路過別的站台。奶牛們想找一條路徑從站台ai到站台bi,使路徑上最高的欄的高度最小。 你的任務就是寫乙個程式,計算出路徑上最高的欄的高度的最小值。
input
行 1: 兩個整數 n, m, t 行
2..m+1: 行 i+1 包含三個整數 si , ei , hi 行 m+2..m+t+1: 行 i+m+1 包含兩個整數,表示任務i的起始站台和目標站台: ai , bi
output
行 1..t: 行 i 為乙個整數,表示任務i路徑上最高的欄的高度的最小值。如果無法到達,輸出 -1。
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
-1 source
silver
n的範圍很小,又是多源最短路,直接floyed即可。。
附上本蒟蒻的**:
#include
#include
#include
using namespace std;
#define inf 1000000000
int n,m,q,dis[301][301];
intread()
while (ch>='0' && ch<='9')
w=w*10+ch-'0',ch=getchar();
return w*c;
}void floyed()
int main()
return
0;}
bzoj1641 奶牛跨欄 最短路
farmer john 想讓她的奶牛準備郡級跳躍比賽,貝茜和她的夥伴們正在練習跨欄。她們很累,所以她們想消耗最少的能量來跨欄。顯然,對於一頭奶牛跳過幾個矮欄是很容易的,但是高欄卻很難。於是,奶牛們總是關心路徑上最高的欄的高度。奶牛的訓練場中有 n 1 n 300 個站台,分別標記為1.n。所有站台之...
BZOJ4264 小C找朋友
description 幼兒園裡有n個小c,兩個小c之間可能是朋友也可能不是。所有小c之間的朋友關係構成了乙個無向圖,這個無向圖中有m條邊。園長atm發現對於兩個 不同的 小ci和j,如果其他的所有小c要麼同時是i,j的朋友,要麼同時不是i,j朋友的話,這兩個小c就很有可能一起去吃飯,成為一對好友。...
bzoj4264 小C找朋友
怎麼說呢,這應該算是一種新知識吧,圖上hash。具體做法就是每個點都附上乙個初值,然後把每個點所連的點的值 合 起來,然後就可以判斷相連的點是否一樣了 不包括自己 如果要讓自己也在的話,再 合 上自己就好了。關於怎麼 合 有多種方法,感覺一般採用二進位制運算,因為不用考慮順序呀。好像異或的正確率比較...