關於一道省選級題的猜想

2021-08-01 18:19:30 字數 1819 閱讀 3736

題目背景

公元 2044 年,人類進入了宇宙紀元。

題目描述

l 國有 n 個星球,還有 n-1 條雙向航道,每條航道建立在兩個星球之間,這 n-1 條航道連通了 l 國的所有星球。

小 p 掌管一家物流公司,該公司有很多個運輸計畫,每個運輸計畫形如:有一艘物

流飛船需要從 ui 號星球沿最快的宇航路徑飛行到 vi 號星球去。顯然,飛船駛過一條航道 是需要時間的,對於航道 j,任意飛船駛過它所花費的時間為 tj,並且任意兩艘飛船之 間不會產生任何干擾。

為了鼓勵科技創新,l 國國王同意小 p 的物流公司參與 l 國的航道建設,即允許小 p 把某一條航道改造成蟲洞,飛船駛過蟲洞不消耗時間。

在蟲洞的建設完成前小 p 的物流公司就預接了 m 個運輸計畫。在蟲洞建設完成後, 這 m 個運輸計畫會同時開始,所有飛船一起出發。當這 m 個運輸計畫都完成時,小 p 的 物流公司的階段性工作就完成了。

如果小 p 可以自由選擇將哪一條航道改造成蟲洞,試求出小 p 的物流公司完成階段 性工作所需要的最短時間是多少?

輸入輸出格式

輸入格式:

輸入檔名為 transport.in。

第一行包括兩個正整數 n、m,表示 l 國中星球的數量及小 p 公司預接的運輸計畫的數量,星球從 1 到 n 編號。

接下來 n-1 行描述航道的建設情況,其中第 i 行包含三個整數 ai, bi 和 ti,表示第

i 條雙向航道修建在 ai 與 bi 兩個星球之間,任意飛船駛過它所花費的時間為 ti。

接下來 m 行描述運輸計畫的情況,其中第 j 行包含兩個正整數 uj 和 vj,表示第 j個 運輸計畫是從 uj 號星球飛往 vj 號星球。

輸出格式:

輸出 共1行,包含1個整數,表示小p的物流公司完成階段性工作所需要的最短時間。

輸入輸出樣例

輸入樣例#1:

6 3

1 2 3

1 6 4

3 1 7

4 3 6

3 5 5

3 6

2 5

4 5

輸出樣例#1:

11 說明

所有測試資料的範圍和特點如下表所示

n,m <=30w

我一開始看這道題感覺不像省選難度,可是dalao萌都寫了我看不懂的東西,於是我猜想使用一種統計演算法,如下記錄邊的權值大小,此blog僅僅是記錄一下**23333

#include

using

namespace

std;

#define mn 300005

struct llla[mn*2];

int n,m,tot,h[mn],ed[mn],cnt[mn*2],mx,op[mn];bool vis[mn];

int dfs(int u)

i=a[i].ne;

}return k+op[u]-ed[u];

}int main()

op[13]=3;op[12]=1;op[9]=1;op[10]=2;op[7]=1;

ed[11]=2;ed[1]=2;ed[8]=4;

int ha=dfs(1);

for(int i=1;i<=tot;i++)

cout

13 12

1 2 1

1 7 1

1 8 1

2 3 1

3 4 1

3 5 1

5 6 1

8 9 8

8 10 1

9 11 7

11 12 1

11 13 9

*/

一道關於訊號的題

用fork建立兩個子程序,呼叫signal 讓父程序接收鍵盤上的中斷訊號 control c 捕捉到訊號後父程序用kill 向子程序傳送自定義訊號,子程序捕捉到訊號後分別輸出如下資訊後終止 child process 1 is killed by parent child process 2 is ...

一道關於矩陣的題

wzz的視察 檔名 inspect 時限 1s 記憶體 256mb decription wzz擁有乙個王國。他的王國是長方形的,跨越了n個維度區和m個經度區,且在每個經度區和緯度區的交界處有一座城市 即wzz的王國一共有n m座城市 某一天早上,wzz從他的一萬平方公尺的大床上起來,他決定去視察一...

關於C 的一道題

閱讀下面程式,然後請寫出輸出結果 cpp view plaincopy include using namespace std int main void 輸出結果如下圖 分析 為什麼會這樣的結果呢?首先我們先分析一下程式,首先我們先看看第一組a和b,那麼a和b是什麼呢?根據我們所學,我們知道a和b...