很神奇的轉換
有n只猴子,第一只尾巴掛在樹上,剩下的n-1只,要麼被其他的猴子抓住,要麼抓住了其他的猴子,要麼兩者均有。
當然乙隻猴子最多抓兩隻另外的猴子。
現在給出這n只猴子抓與被抓的資訊,
並且在某個時刻可能某只猴子會放掉它其中乙隻手的猴子,導致某些猴子落地。
求每只猴子落地的時間。
luogu大佬原話:
事實上我們可以把猴子放手的時間當作這條邊的邊權,而不放手的邊權為乙個大數,
我們需要求得其實就是一條單源路徑,讓這條路徑最小邊權最大,直接輸出這個值即可,
若這個值為那個大數,就輸出-1。
一條路徑最小邊權就是斷開時間
這個最大的 最小邊權,就是到這個點的所有路徑都斷開的時間
#include#includeview code#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;
}
刷題 最短路 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...