刷題 最短路 猴子

2022-08-13 20:54:15 字數 1070 閱讀 4210

很神奇的轉換

有n只猴子,第一只尾巴掛在樹上,剩下的n-1只,要麼被其他的猴子抓住,要麼抓住了其他的猴子,要麼兩者均有。

當然乙隻猴子最多抓兩隻另外的猴子。

現在給出這n只猴子抓與被抓的資訊,

並且在某個時刻可能某只猴子會放掉它其中乙隻手的猴子,導致某些猴子落地。

求每只猴子落地的時間。

luogu大佬原話:

事實上我們可以把猴子放手的時間當作這條邊的邊權,而不放手的邊權為乙個大數,

我們需要求得其實就是一條單源路徑,讓這條路徑最小邊權最大,直接輸出這個值即可,

若這個值為那個大數,就輸出-1。

一條路徑最小邊權就是斷開時間

這個最大的 最小邊權,就是到這個點的所有路徑都斷開的時間

#include#include

#include

#include

using

namespace

std;

intn,m;

const

int n=200003,m=n<<2

;int ls[n],rs[n],tm[n][2

];int

tot,head[n];

intev[m],ew[m],enx[m];

void add(int u,int v,int

w)int

dis[n];

struct

node

};priority_queue

q;void

dijk()

);

while(!q.empty() )

); }}}

}int

main()

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

//求0-m-1s掉落的猴子

dijk();

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

if(dis[i]"

%d\n

",dis[i]);

else printf("

-1\n");

return0;

}

view code

刷題 最短路 luogu P2384 最短路

給定n個點的帶權有向圖,求從1到n的路徑中邊權之積最小的簡單路徑。來自題解 首先考慮暴力維護,顯然極端資料就會炸裂,那麼用什麼來維護呢?由於log n m log n log m ok,這道題到此結束 我們只要把乘積轉化為對數,最後再還原就可以了,因為精度要求,所以還是記錄路徑好些。include ...

PAT刷題模板 最短路徑演算法

dijkstral演算法適用於無負權邊的圖。圖結構和輔助陣列 const int inf 0x3fffffff inf定義為了int的上限 cost為邊權矩陣 weight為點權,若有則可以使用 int g maxn maxn cost maxn maxn weight maxn weight ca...

演算法題 最短路徑 03 最短路

在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10000 n...