刷題 最短路 luogu P2384 最短路

2022-08-13 22:06:11 字數 933 閱讀 7684

給定n個點的帶權有向圖,求從1到n的路徑中邊權之積最小的簡單路徑。

(來自題解)

首先考慮暴力維護,顯然極端資料就會炸裂,那麼用什麼來維護呢?

由於log(n*m)=log(n)+log(m)

ok,這道題到此結束

我們只要把乘積轉化為對數,最後再還原就可以了,因為精度要求,所以還是記錄路徑好些。

#include#include

#include

#include

#include

#include

using

namespace

std;

intn,m;

const

int n=1003,inf=1

<<30

;struct

node

node(){}

};vector

g[n];

int sz[n],path[n][2

];double

dis[n];

struct

nd nd(){}

bool

operator

< (const nd & o) const

};priority_queue

q;void

dijk()}}

}int ans=1,mod=9987

;void

get_path()

}int

main()

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

sz[i]=g[i].size() ;

dijk();

get_path();

printf(

"%d\n

",ans);

return0;

}

P2384 最短路 最短路

狗哥做爛了最短路,突然機智的考了bosh一道,沒想到把bosh考住了.你能幫bosh解決嗎?他會給你 100000000000000000000000000000000000 10 金幣w 給定n個點的帶權有向圖,求從1到n的路徑中邊權之積最小的簡單路徑。第一行讀入兩個整數n,m,表示共n個點m條邊...

洛谷 2384 最短路

題解 直接把鬆弛操作中dis to dis now e i dis改成dis to dis now e i dis是不行的,因為這樣做會爆long long.同時也可以發現在最短路中我們並不能邊鬆弛邊取模,這會導致答案錯誤。其實我們可以把邊權取個log.因為log m n logn logm,所以轉...

刷題 最短路 猴子

很神奇的轉換 有n只猴子,第一只尾巴掛在樹上,剩下的n 1只,要麼被其他的猴子抓住,要麼抓住了其他的猴子,要麼兩者均有。當然乙隻猴子最多抓兩隻另外的猴子。現在給出這n只猴子抓與被抓的資訊,並且在某個時刻可能某只猴子會放掉它其中乙隻手的猴子,導致某些猴子落地。求每只猴子落地的時間。luogu大佬原話 ...