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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最舒适的路线 第六届

發(fā)布時間:2025/3/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最舒适的路线 第六届 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

異形卵潛伏在某區(qū)域的一個神經網絡中。其網絡共有N個神經元(編號為1,2,3,…,N),這些神經元由M條通道連接著。兩個神經元之間可能有多條通道。異形卵可以在這些通道上來回游動,但在神經網絡中任一條通道的游動速度必須是一定的。當然異形卵不希望從一條通道游動到另一條通道速度變化太大,否則它會很不舒服。

現在異形卵聚居在神經元S點,想游動到神經元T點。它希望選擇一條游動過程中通道最大速度與最小速度比盡可能小的路線,也就是所謂最舒適的路線。

輸入

第一行: K 表示有多少組測試數據。?
接下來對每組測試數據:
第1行: N M
第2~M+1行: Xi Yi Vi (i=1,…..,M)
表示神經元Xi 到神經元Yi之間通道的速度必須是Vi
最后一行: S T ( S ? T )

【約束條件】
2≤K≤5 1<N≤500 0<M≤5000 1≤ Xi, Yi , S , T ≤N 0< Vi <30000,
Vi是整數。數據之間有一個空格。

輸出

對于每組測試數據,輸出一行:如果神經元S到神經元T沒有路線,輸出“IMPOSSIBLE”。否則輸出一個數,表示最小的速度比。如果需要,輸出一個既約分數。

樣例輸入

2 3 2 1 2 2 2 3 4 1 3 3 3 1 2 10 1 2 5 2 3 8 1 3

樣例輸出

2 5/4

AC代碼:

#include<bits/stdc++.h> //包含c++中所以得頭文件 using namespace std; int father[5050]; int K,N,M; struct node{int x,y,v; }s[5050]; int find(int x){while(x!=father[x])x=father[x];return x; } void merage(int x,int y){x=find(x);y=find(y);if(x>y)father[x]=y;else father[y]=x; } int cmp(node a,node b){return a.v>b.v; } int gcd(int a,int b) { while(b!=0) { int t=a%b; a=b; b=t; } return a; } int main() {int i,j,k,a,b;int S,T;double l;while(cin>>K)while(K--){cin>>N>>M;for(i=0;i<M;i++)cin>>s[i].x>>s[i].y>>s[i].v;cin>>S>>T;sort(s,s+M,cmp);l=INT_MAX*1.0;for(i=0;i<M;i++){for(j=0;j<N;j++)father[j]=j;for(k=i;k<M;k++){if(find(s[k].x)!=find(s[k].y)) merage(s[k].x,s[k].y);if(find(S)==find(T))break;}if(k==M)break;if(s[i].v*1.0/s[k].v<l){a=s[i].v,b=s[k].v;l=s[i].v*1.0/s[k].v;}}if(l==INT_MAX)printf("IMPOSSIBLE\n");else if(a%b==0)cout<<a/b<<endl;else cout<<a/gcd(a,b)<<"/"<<b/gcd(a,b)<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的最舒适的路线 第六届的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。