舒適的路線(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范圍內

/*貌似是最優比率生成樹,但不會怎么做,問了問同學,是用并查集做的,很神奇。把邊按邊長從小到大排序,枚舉i作為生成樹的最長邊,然后從i到1添邊,直到s和t相連,每次對最長邊與最短邊的比值取小即為答案。至于正確性是顯然的,因為它盡量使生成樹由邊長相近的邊組成,然后取小。 
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#define M 510
#define INF 100000000
using namespace std;
int fa[M],n,m,s,t;
struct node
{int x,y,z;
};node e[M*10];
bool cmp(const node&a,const node&b)
{return a.z<b.z;
}
int find(int x)
{if(fa[x]==x)return x;return fa[x]=find(fa[x]);
}
int gcd(int a,int b)
{if(!b)return a;return gcd(b,a%b);
}
void print(int x,int y)
{if(x%y==0)printf("%d",x/y);else{int t=gcd(x,y);printf("%d/%d",x/t,y/t);}
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++)scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].z);scanf("%d%d",&s,&t);sort(e+1,e+m+1,cmp);bool flag=false;double ans=INF;int ax,ay;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)fa[j]=j;for(int j=i;j;j--){int a=find(e[j].x),b=find(e[j].y);if(a!=b)fa[a]=b;if(find(s)==find(t)){if(double(e[i].z)/double(e[j].z)<ans){ans=double(e[i].z)/double(e[j].z);ax=e[i].z;ay=e[j].z;}flag=true;break;}}}if(flag)print(ax,ay);else printf("IMPOSSIBLE");return 0;
}
View Code

?

轉載于:https://www.cnblogs.com/harden/p/5801497.html

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

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

相關文章

PHP_Smarty

模板 數據與表現層的標簽分離 smarty是PHP 與 HTML代碼的分離 小型模板類 $smarty 的工作流程&#xff1a; 把需要顯示的全局變量&#xff0c;賦值塞到對象內部的屬性上&#xff0c;一個數組中.編譯模板&#xff0c;把{$標簽},解析成相應的<?php echo 代碼引入編譯后的PHP文…

讀中文_挑戰來了!康輝喊你讀中文十級繞口令!

文章來源&#xff1a;央視頻漢語橋木甬讀桶不讀涌&#xff0c;月農讀膿不讀朧。米更讀粳不讀梗&#xff0c;日青讀晴不讀睛。米宗讀粽不讀綜&#xff0c;言丁讀訂不讀釘。土竟讀境不是鏡&#xff0c;土平讀坪不是評。耳令讀聆不讀嶺&#xff0c;火登讀燈不讀澄。言甬讀誦不讀蛹…

ios 自定義鍵盤

由于項目需要&#xff0c;需要自定義鍵盤。ios系統鍵盤會緩存鍵盤輸入&#xff0c;并保存在系統目錄下的文件里&#xff0c;并且是明文存儲&#xff0c;存在帳號密碼泄漏風險。在別人代碼基礎上修改了下&#xff0c;美化了下界面&#xff0c;去掉了字符輸入&#xff0c;加了點擊…

對象入參指定泛型類型_為什么要使用泛型,而不是直接將類型作為參數傳遞?

其實很多類型系統都是用類型參數的的形式來實現Universal Type的&#xff0c;Parametric Polymorphism 和System F可以了解一下&#xff0c;如果只局限于一兩個熱門語言的話&#xff0c;可能會有此疑問&#xff0c;但是從type theory的角度來說&#xff0c;高階類型本身就是typ…

【GOF23設計模式】迭代器模式

【GOF23設計模式】迭代器模式 來源&#xff1a;http://www.bjsxt.com/ 一、【GOF23設計模式】_迭代器模式、JDK內置迭代器、內部類迭代器 1 package com.test.iterator;2 /**3 * 自定義的迭代器接口4 */5 public interface MyIterator {6 void first(); //將游標指向第…

SQLServer 維護腳本分享(08)臨時數據庫(tempdb)

dbcc sqlperf(logspace) --各數據庫日志大小及使用百分比dbcc loginfo --查看當前數據庫的虛擬日志文件--臨時表Tempdb最近使用情況 SELECT t1.session_id ,t1.internal_objects_alloc_page_count*8.0/1024 as internal_objects_alloc_MB ,t1.internal_objects_dealloc_p…

51單片機50個實例代碼_【附代碼】51單片機電子密碼鎖教程

簡介大家好&#xff0c;這篇文章的內容是關于如何用51單片機來制作一個電子密碼鎖的教程&#xff0c;通過這篇教程可以讓剛入門的朋友了解矩陣鍵盤、LCD1602的使用方法&#xff0c;以及密碼輸入和修改的程序介紹&#xff0c;我會對每個部分進行詳細的介紹。首先我們來看一下這個…

旋轉的正方體

<!DOCTYPE html><html lang"zh-cmn-Hans"><head><meta charset"utf-8" /><title>backface-visibility_CSS參考手冊_web前端開發參考手冊系列</title><meta name"author" content"Joy Du(飄零霧雨),…

8數據提供什么掩膜產品_博碩能為你提供什么產品?

自動噴漆設備應用于線條、木門、櫥柜、樓梯、套房家具、辦公家具、木飾面板、外墻保溫裝飾一體板板等產品領域&#xff0c;針對NC、PU、UV、水性漆和氟碳漆等不同種類的油漆&#xff0c;進行自動化噴涂和干燥作業。自動噴漆設備有多種規格型號&#xff0c;分為不同的噴涂方式。…

python3 實現對比conf 文件差異

用法&#xff1a; ./conf.py nginx1.conf nginx2.conf > diff.htmlconf.py#!/usr/bin/python import difflib import sys #### Usage: compare_nginx.conf.py filename1 filename2 >diff.html try:textfile1 sys.argv[1]textfile2 sys.argv[2] except Exception as…

mysql----innodb統計信息

對innodb 統計信息的控制可以通過如下幾個常用的variables 來實現 1、innodb_stats_persistent&#xff1a; 這個參數控制著innodb的統計信息是否持久化到磁盤&#xff0c;先說明一下持久化到磁盤是什么意思&#xff1b;通常來說統計信息只保存在內存中&#xff0c;也就是說如果…

linux pid t 頭文件_linux系統調用相關頭文件

Linux C 一些函數 所屬的頭文件 2011-03-07 10:25:07分類&#xff1a; LINUX在編寫程序時&#xff0c;有時總是不記得所使用的函數在哪個庫函數中。現在先把自己以前經常用到的函數頭文件總結一下。 有不對的地方還請指教。1&#xff0c;系統調用 文件的操作函數#inlclude &…

jsp頁面驗證碼(完整實例)

項目結構如下&#xff0c;MyEclipse中新建一個Web Project&#xff0c;取名servlet 1、src下new一個servlet類 package com.servlet;import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOExcept…

開源oa_圈子哥推薦一款基于 Spring Boot 開發 OA 開源產品,學習/搞外快都是不二選擇!...

點擊上方藍字關注「程序員的技術圈子」今天圈子哥給大家推薦一套Spring Boot 開發 OA系統&#xff0c;系統功能齊全&#xff0c;不管是用來學習或者搞外快都是不錯的選擇&#xff0c;clone下來吧&#xff01;辦公自動化(OA)是面向組織的日常運作和管理&#xff0c;員工及管理者…

iOS網絡編程實踐--NSStream實現TCP Socket iPhone客戶端

客戶端我們使用iPhone應用程序&#xff0c;畫面比較簡單。點擊發送按鈕&#xff0c;給服務器發送一些字符串過去。點擊接收按鈕就會從服務器讀取一些字符串&#xff0c;并且顯示在畫面上。 有關客戶端應用的UI部分不再介紹了&#xff0c;我們直接看代碼部分&#xff0c;Socket客…

Mocha 和 Chai 入門初探

轉載自樓主個人博客 Mocha 和 Chai 入門初探Chai 在和 jest 作比較的時候, 兩者主要的不同就是 jest 的集成度比較高內置斷言庫, 而 mocha 需要搭配額外的斷言庫, 在此選擇了比較流行的 chai 作為斷言庫. 風格的選擇 其中 chai 又有好幾種斷言風格, 我們經常見到的其實就是 BDD…

ios把數據傳遞到另一個頁面_IOS 應用之間的跳轉和數據傳遞詳解

說明&#xff1a;本文介紹app如何打開另一個app,并且傳遞數據。一、簡單說明新建兩個應用&#xff0c;分別為應用A和應用B.實現要求:在appA的頁面中點擊對應的按鈕&#xff0c;能夠打開appB這個應用。1.新建兩個應用&#xff0c;分別為A和B.142354418874108[1].png150002248248…

Libevent初探

Libevent 是一個用C語言編寫的、輕量級的開源高性能網絡庫&#xff0c;主要有以下幾個亮點&#xff1a;事件驅動&#xff08; event-driven&#xff09;&#xff0c;高性能;輕量級&#xff0c;專注于網絡&#xff0c;不如 ACE 那么臃腫龐大&#xff1b;源代碼相當精煉、易讀&am…

ServerSocketChannel API用法

java.nio.channels 類 ServerSocketChannel java.lang.Objectjava.nio.channels.spi.AbstractInterruptibleChanneljava.nio.channels.SelectableChanneljava.nio.channels.spi.AbstractSelectableChanneljava.nio.channels.ServerSocketChannel所有已實現的接口&#xff1a; C…

jq分頁 不刷新頁面_jQuery無刷新分頁完整實例代碼

本文實例講述了jQuery無刷新分頁實現方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;這款jQuery分頁示例&#xff0c;是分頁經典形式&#xff0c;兼容性也做的好&#xff0c;網頁上的分頁代碼&#xff0c;分享給大家。運行效果截圖如下&#xff1a;在線演示地址如…