Luogu P2888 [USACO07NOV]牛欄Cow Hurdles

来源:http://www.cnblogs.com/Hammer-cwz-77/archive/2017/08/14/7356922.html
-Advertisement-
Play Games

題目描述 Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are practicing jumping over hurdles. They are ge ...


題目描述

Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are practicing jumping over hurdles. They are getting tired, though, so they want to be able to use as little energy as possible to jump over the hurdles.

Obviously, it is not very difficult for a cow to jump over several very short hurdles, but one tall hurdle can be very stressful. Thus, the cows are only concerned about the height of the tallest hurdle they have to jump over.

The cows' practice room has N (1 ≤ N ≤ 300) stations, conveniently labeled 1..N. A set of M (1 ≤ M ≤ 25,000) one-way paths connects pairs of stations; the paths are also conveniently labeled 1..M. Path i travels from station Si to station Ei and contains exactly one hurdle of height Hi (1 ≤ Hi ≤ 1,000,000). Cows must jump hurdles in any path they traverse.

The cows have T (1 ≤ T ≤ 40,000) tasks to complete. Task i comprises two distinct numbers, Ai and Bi (1 ≤ Ai ≤ N; 1 ≤ Bi ≤ N), which connote that a cow has to travel from station Ai to station Bi (by traversing over one or more paths over some route). The cows want to take a path the minimizes the height of the tallest hurdle they jump over when traveling from Ai to Bi . Your job is to write a program that determines the path whose tallest hurdle is smallest and report that height.

  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,使路徑上最高的欄的高度最小。 你的任務就是寫一個程式,計算出路徑上最高的欄的高度的最小值。

輸入輸出格式

輸入格式:

 

  • Line 1: Three space-separated integers: N, M, and T

  • Lines 2..M+1: Line i+1 contains three space-separated integers: Si , Ei , and Hi

  • Lines M+2..M+T+1: Line i+M+1 contains two space-separated integers that describe task i: Ai and Bi

行 1: 兩個整數 N, M, T

行 2..M+1: 行 i+1 包含三個整數 Si , Ei , Hi

行 M+2..M+T+1: 行 i+M+1 包含兩個整數,表示任務i的起始站臺和目標站臺: Ai , Bi

 

輸出格式:

 

  • Lines 1..T: Line i contains the result for task i and tells the smallest possible maximum height necessary to travel between the stations. Output -1 if it is impossible to travel between the two stations.

行 1..T: 行 i 為一個整數,表示任務i路徑上最高的欄的高度的最小值。如果無法到達,輸出 -1。

 

輸入輸出樣例

輸入樣例#1:
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
輸出樣例#1:
4
8
-1
 1 //很簡單的最短路,在 Floyd 上面做微小修改。正常的最短路是 sp(s, e) = min{sp(s, k) + sp(k, e)},這裡最短路的計算方式不是邊權求和而是邊權求最大值,所以改成sp(s, e) = min{max{sp(s, k), sp(k,e)}} 即可。
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 typedef  long long ll;
 5 ll read()
 6 {
 7 ll ret=0,ok=1;
 8 char ch=getchar();
 9 while(ch<'0'||ch>'9')
10 {
11 if(ch=='-')ok=-1;
12 ch=getchar();
13 }
14 for(;ch>='0'&&ch<='9';ch=getchar())
15  ret=ret*10+ch-'0';
16 return ret*ok;
17 }
18 ll n,m,t; 
19 ll s,h,e;
20 ll a,b;
21 ll sp[500][500];
22 const int INF=0x7fffffff;
23 int main()
24 {
25 n=read(),m=read(),t=read();
26 memset(sp,0x3f,sizeof(sp));
27 for(int i=1;i<=m;i++)
28 {
29     cin>>s>>e>>h;
30     sp[s][e]=h;
31 }
32 for(int i=1;i<=n;i++)
33 sp[i][i]=0; 
34 for(int k=1;k<=n;k++)
35 for(int i=1;i<=n;i++)
36 for(int j=1;j<=n;j++)
37 {
38 sp[i][j]=min(sp[i][j],max(sp[i][k],sp[k][j]));
39 }
40 for(int i=1;i<=t;i++)
41 {
42     cin>>a>>b;
43     if(sp[a][b]>=INF)
44     cout<<-1<<endl;
45     else
46     cout<<sp[a][b]<<endl;
47 }
48     return 0;
49 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Owin Middleware Components(OMCs) 通過安裝Install-Package Microsoft.Owin.Host.SystemWeb 可以讓OMCs在IIS集成管道下工作 在IIS集成管道里,這個request pipeline 包含HttpModules關聯到一組預 ...
  • 諸如 SAP 這樣的企業級應用已成為普遍的流行趨勢。考慮到不同行業和需求的特點,所選平臺必須能夠為不同層面用戶和各種 IT 活動提供靈活的容量需求。 此時上雲也許是種不錯的選擇,而想上雲的企業,一方面希望自己的實施是高效率、低投入的;另一方面,又想把風險降低到最小程度。針對不同的客戶需求,SAP 提... ...
  • Katana在程式集內的程式集名稱空間下查找一個叫做Startup的類, 定義友好命名的Startup類 https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-startup-class-detect ...
  • PsPing 是微軟 PSTools 工具套件中的其中一個工具,除了用來進行 ICMP Ping 測試,還可用來測試 TCP 埠的連通性,以及 TCP/UDP 網路時延和帶寬。 ...
  • 機器學習是一項已被研究及應用了數十年的專業領域,是一個能基於數據輸入,進而導出預測成果的繁複電腦系統流程。而 Azure 的機器學習,則封裝了這多年來機器學習的研究成果(如在 Bing 和 Xbox Live 已被使用的),能夠以簡潔的方法進行大數據分析時所需要的複雜數學模型,同時還大幅降低了進行... ...
  • 本文通過實例講解Java中如何使用ArrayList類。 Java.util.ArrayList類是一個動態數組類型,也就是說,ArrayList對象既有數組的特征,也有鏈表的特征。可以隨時從鏈表中添加或刪除一個元素。ArrayList實現了List介面。 大家知道,數組是靜態的,數組被初始化之後, ...
  • 一、概念: 一般我們都知道ArrayList* 由一個數組後推得到的 List。作為一個常規用途的對象容器使用,用於替換原先的 Vector。允許我們快速訪問元素,但在從列表中部插入和刪除元素時,速度卻嫌稍慢。一般只應該用ListIterator 對一個 ArrayList 進行向前和向後遍歷,不要 ...
  • 參考 數據結構Java實現06 中綴表達式轉換為尾碼表達式 將中綴表達式轉化為尾碼表達式 Mycode 你以為我會寫註釋嗎?不可能的。 運行結果如下: 像我這種不拘小節的男人,是不會在意同優先順序運算順序的。 大概上,演算法是沒什麼錯誤的。 再附上一個程式,同樣不會寫註釋的。 自己憑本事寫的bug。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...