BZOJ1050 [HAOI2006]旅行

Description

  給你一個無向圖,N(N<=500)個頂點, M(M<=5000)條邊,每條邊有一個權值Vi(Vi<30000)。給你兩個頂點S和T
,求一條路徑,使得路徑上最大邊和最小邊的比值最小。如果S和T之間沒有路徑,輸出”IMPOSSIBLE”,否則輸出
這個比值,如果需要,表示成一個既約分數。 備注: 兩個頂點之間可能有多條路徑。

Input

  第一行包含兩個正整數,N和M。下來的M行每行包含三個正整數:x,y和v。表示景點x到景點y之間有一條雙向
公路,車輛必須以速度v在該公路上行駛。最后一行包含兩個正整數s,t,表示想知道從景點s到景點t最大最小速
度比最小的路徑。s和t不可能相同。
1<N<=500,1<=x,y<=N,0<v<30000,0<M<=5000

Output

  如果景點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

題解

將所有邊按權值排序,枚舉最小邊,順序枚舉最大邊直到s和t連通。利用并查集。

沒了。

附代碼:

#include <algorithm>
#include <cstdio>
typedef long long LL;
const int N = 505, M = 5050;
struct Edge{int u, v, w;bool operator<(const Edge &x)const{return w < x.w;}
};
Edge e[M];
int fa[N];
int find(int x) {if (fa[x]) return fa[x] = find(fa[x]);return x;
}
inline void Union(int x, int y) {if ((x = find(x)) != (y = find(y)))fa[x] = y;
}
int gcd(int a, int b) {return b ? gcd(b, a % b) : a;
}
int main() {int n, m, s, t;scanf("%d%d", &n, &m);for (int i = 0; i < m; ++i)scanf("%d%d%d", &e[i].u, &e[i].v, &e[i].w);std::sort(e, e + m);scanf("%d%d", &s, &t);int ansn = 10000000, ansd = 1;for (int l = 0; l + 1 < m; ++l) {for (int i = 1; i <= n; ++i) fa[i] = 0;Union(e[l].u, e[l].v);int r;for (r = l + 1; r < m && find(s) != find(t); ++r)Union(e[r].u, e[r].v);if (find(s) == find(t)) {int an = e[r - 1].w, ad = e[l].w;if ((LL)an * ansd < (LL)ansn * ad)ansn = an, ansd = ad;}}if (ansn == 10000000) return printf("IMPOSSIBLE"), 0;int g = gcd(ansn, ansd);ansn /= g, ansd /= g;printf("%d", ansn);if (ansd > 1) printf("/%d", ansd);return 0;
}

  

轉載于:https://www.cnblogs.com/y-clever/p/6999313.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258439.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258439.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

biosrecovery什么意思_BIOS中的每個中文是什么意思

BIOS中的每個中文是什么意思&#xff0c;請對照的翻譯一下Time/System Time時間/系統時間Date/System Date日期/系統日期Level 2 Cache二級緩存System Memory系統內存Video Controller視頻控制器Panel Type液晶屏型號Audio Controller音頻控制器Modem Controller調制解調器(Mod…

百度網盤7.3.1.10版本增加工作空間功能,可實現百度網盤與電腦文件夾同步

百度網盤新增的工作空間是一款文件同步的產品&#xff0c;支持電腦本地與云端之間的文件同步&#xff0c;多設備間文件自動保持同步、支持查看文件每次都修改的歷史版本。功能類似于onedrive。如果有同步需求的小伙伴可以嘗試下載最新版的百度網盤試用該功能哦。下載網址&#…

ubuntu+idea intellij配置android開發環境

最近對移動開發產生興趣&#xff0c;決定在未來幾年內利用空余時間開發一些app或游戲什么的&#xff0c;鑒于ios開發成本較高&#xff0c;且自身對java相對熟悉&#xff0c;因此選擇了學習android。都說android市場不很很好&#xff0c;收益較難&#xff0c;但是仍覺得只要功夫…

typeof的用法

typeof可以返回變量的類型&#xff0c;返回值為字符串&#xff0c;其值有 "undefined" "boolean" "string" "number" "object" "function" 而 typeof(null)會返回object 轉載于:https://www.cnblogs.com/lhyhappy…

opencv 最大連通域_opencv 查找連通區域 最大面積實例

今天在弄一個查找連通的最大面積的問題。要把圖像弄成黑底&#xff0c;白字&#xff0c;這樣才可以正確找到。然后調用下邊的方法&#xff1a;RETR_CCOMP:提取所有輪廓&#xff0c;并將輪廓組織成雙層結構(two-level hierarchy),頂層為連通域的外圍邊界&#xff0c;次層位內層邊…

JS 函數柯里化

在計算機科學中&#xff0c;柯里化是把接受多個參數的函數變換成接受一個單一參數&#xff08;最初函數的第一個參數&#xff09;的函數&#xff0c;并且返回接受余下的參數而且返回結果的新函數的技術。——詳見 維基百科柯里化就是預先將某些參數傳入&#xff0c;得到一個簡單…

LTI系統的物理可實現性與希爾伯特變換

產品的設計一般為線性時不變系統&#xff0c;要求系統具有物理可實現性&#xff0c;從時域上看&#xff0c;h(t)具有因果性&#xff1b;從頻域上看&#xff0c;|H(jw)|符合佩利—維納準則。任何具有因果性的系統&#xff0c;|H(jw)|的實部R(w)滿足希爾伯特變換&#xff0c;|H(j…

垂死掙扎還是涅槃重生 -- Delphi XE5 公布會歸來感想

Delphi 是一個基本上被我遺忘的工具&#xff0c; 要不是在使用RapidSql , 我是收不到Embarcadero 公司發出的邀請來參加Delphi XE5的公布會的。 有人可能要問為什么是Embarcadero &#xff08;名稱很拗口&#xff09;而不是Borland 開Delphi 公布會&#xff0c; 這是由于Borla…

iOS Appstore 版本更新

1&#xff0c;版本更新 通過比較構建號/版本號 檢查更新 /// 構建號 50 // NSString * currentVersion [NSBundle mainBundle].infoDictionary["CFBundleVersion"];/// 版本號 2.2.0//CFBundleShortVersionStringNSString * currentVersion [NSBundle mainBund…

ubuntu下安裝國際版QQ

在網上看到了好多的ubuntu下安裝QQ的方法 好多 下面是看別人的文章 來測試的一篇 ubuntu下 安裝國際版QQhttp://www.ubuntukylin.com/applications/showimg.php?langcn&id23下載 地址網盤:http://yun.baidu.com/share/link?shareid2983202140&uk202032639下載好以后 …

傅里葉變換應用——信號調制與解調

傅里葉變換的典型應用主要用于通信的信號調制與解調&#xff0c;信號調制的目的是將信號進行變換&#xff0c;使其便于傳輸。頻率調制是將低頻信號調制到高頻載波信號上。同步信號解調是接受系統產生同步的高頻載波信號進行解調&#xff0c;從調制信號中恢復原信號的過程。調制…

cocos2d-x返回Android游戲黑屏解決辦法

返回Android游戲黑屏解決辦法這幾天逛cocos2d-x.org論壇&#xff0c;發現cocos2d-x的作者放出來一個帖子&#xff0c;用來解決返回Android游戲加載資源時黑屏的問題。帖子過些日子估計就沉了&#xff0c;所以轉出來&#xff0c;以供后面查詢。需要修改三個文件&#xff1a;1) c…

vue重要特性

重要特性 自定義input組件動態組件遞歸組件slot作用域slot異步組件內聯模板子組件索引進階 自定義指令狀態管理vuex單文件組件生產部署路由xxx

連續時間系統與離散時間系統的時域分析對比

通過學習離散時間系統的時域分析&#xff0c;發現其與連續時間系統的時域分析有很多相似之處&#xff0c;自己做了一個專題拓展&#xff0c;從數學模型描述到時域分析方法對兩大系統進行橫向對比&#xff0c;總結兩者之間的聯系和異同點。

python獲取當前時間的源代碼_Python獲取時間戳代碼實例

1、獲取秒級時間戳與毫秒級時間戳、微秒級時間戳import timeimport datetimet time.time()print (t) #原始時間數據print (int(t)) #秒級時間戳print (int(round(t * 1000))) #毫秒級時間戳print (int(round(t * 1000000))) #微秒級時間戳返回1499825149.257892 #原始時間數據…

AutoLayout bug集合

NSInternalInconsistencyException, reason: <NSISEngine: 0x16d5ef10>... http://stackoverflow.com/questions/28111635/ios-aspect-ratio-constraint-breaks-on-ios7-works-on-ios8 這好像是ios7.1的bug,對浮點數計算有誤,一般添加按鈕比例約束的時候multiplier值都是…

[SQL Server]重命名數據庫【轉】

原文鏈接&#xff1a;http://www.cnblogs.com/Ryan_j/archive/2011/04/03/2004428.html 重命名數據庫很簡單&#xff0c;選擇數據庫--右鍵--重命名數據庫 或者 sp_renamedb oldDB ,newDB 但是你再新建的相同名字的數據庫就會報錯&#xff0c;提示數據庫已經存在 比如test數據庫…

DCOS實踐分享(4):如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)

這篇文章入選CSDN極客頭條 http://geek.csdn.net/news/detail/71572 當前&#xff0c;要保證業務的市場競爭力&#xff0c;僅靠設計一個可用并且好看的產品&#xff0c;已經完全不能滿足要求。全球消費者都希望產品能夠足夠的智能化&#xff0c;通過大數據分析來改善他們的用戶…

連續系統的卷積積分與離散系統的卷積和

在LTI連續系統中&#xff0c;以沖激函數為基本信號&#xff0c;將任意信號分解&#xff0c;從而得到連續系統的零狀態響應等于激勵與系統沖激響應的卷積積分 &#x1d466;&#x1d467;&#x1d460;&#x1d461;&#x1d453;&#x1d461;?h&#x1d461; 在LTI離散…

自學python從零開始學_新手學習python-從零開始學習

1.學習pythonurllib2 常用方法urlopen(url, data, timeout)urllib2.Request()urllib.urlencode()params {}get : url "?" paramshttp:請求分析User-Agent : 有些服務器或 Proxy 會通過該值來判斷是否是瀏覽器發出的請求Content-Type : 在使用 REST 接口時&#x…