codevs 1001 舒適的路線
題目描述 description
z小鎮是乙個景色宜人的地方,吸引來自各地的觀光客來此旅遊觀光。
z小鎮附近共有
n(1 < n≤500)個景點(編號為1,2,3,…,n),這些景點被m(0< m≤5000)條道路連線著,所有道路都是雙向的,兩個景點之間可能有多條道路。也許是為了保護該地的旅遊資源,z小鎮有個奇怪的規定,就是對於一條給定的公路ri,任何在該公路上行駛的車輛速度必須為vi。頻繁的改變速度使得遊客們很不舒服,因此大家從乙個景點前往另乙個景點的時候,都希望選擇行使過程中最大速度和最小速度的比盡可能小的路線,也就是所謂最舒適的路線。
輸入描述 input description
第一行包含兩個正整數,n和m。
接下來的m行每行包含三個正整數:x,y和v(1≤x,y≤n,0 最後一行包含兩個正整數s,t,表示想知道從景點s到景點t最大最小速度比最小的路徑。s和t不可能相同。
輸出描述 output description
如果景點s到景點t沒有路徑,輸出「impossible」。否則輸出乙個數,表示最小的速度比。如果需要,輸出乙個既約分數。
樣例輸入 sample input
樣例1
4 2
1 2 1
3 4 2
1 4樣例2
3 3
1 2 10
1 2 5
2 3 8
1 3樣例3
3 2
1 2 2
2 3 4
1 3樣例輸出 sample output
樣例1
impossible
樣例2
5/4樣例3
2資料範圍及提示 data size & hint
n(1< n≤500)
m(0< m≤5000)
vi在int範圍內
思路:暴力列舉記錄最大值和最小值,用並查集維護圖的聯通,更新答案使比值盡量小。
題解:
#include
#include
#include
using namespace std;
const int maxn=10000+100;
int n,m;
ints,t;
int f[maxn];
struct cca[maxn];
int cmp(cc aa,cc bb)
return f[w];
}int ans1=0,ans2=0;
void kru()
maxn=0,minn=10000000;
for(int j=i;j<=m;j++)
if(find(s)==find(t))}}
}} int main()
scanf("%d
%d",&s,&t);
kru();
if(!ans1&&!ans2)
else
else
}return
0;}
CODEVS 1001 舒適的路線
z小鎮是乙個景色宜人的地方,吸引來自各地的觀光客來此旅遊觀光。z小鎮附近共有 n 1第一行包含兩個正整數,n和m。接下來的m行每行包含三個正整數 x,y和v 1 x,y n,0 最後一行包含兩個正整數s,t,表示想知道從景點s到景點t最大最小速度比最小的路徑。s和t不可能相同。如果景點s到景點t沒有...
1001 舒適的路線
2006年 時間限制 2 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解檢視執行結果 z小鎮是乙個景色宜人的地方,吸引來自各地的觀光客來此旅遊觀光。z小鎮附近共有 n 1輸入描述 input description 第一行包含兩個正整數,n和m。接下來的m行每行包含三個正整數...
CODEVS 1041Car的旅行路線
我在此 的基礎上做進一步的說明解釋。include include include include include using namespace std const double oo 10000000 城市的飛機場 x 1 4 1代表第x個城市開始的飛機場下標 define ctoa x x 1...