最小生成樹 LCA 洛谷 P2245 星際導航

2022-05-27 00:51:12 字數 1152 閱讀 9712

sideman做好了回到gliese 星球的硬體準備,但是sideman的導航系統還沒有完全設計好。為了方便起見,我們可以認為宇宙是一張有n 個頂點和m 條邊的帶權無向圖,頂點表示各個星系,兩個星系之間有邊就表示兩個星系之間可以直航,而邊權則是航行的危險程度。

sideman 現在想把危險程度降到最小,具體地來說,就是對於若干個詢問(a, b),sideman 想知道從頂點a 航行到頂點b 所經過的最危險的邊的危險程度值最小可能是多少。作為sideman 的同學,你們要幫助sideman 返回家園,兼享受安全美妙的宇宙航行。所以這個任務就交給你了。

輸入格式:

第一行包含兩個正整數n 和m,表示點數和邊數。

之後 m 行,每行三個整數a,b 和l,表示頂點a 和b 之間有一條邊長為l 的邊。頂點從1 開始標號。

下面一行包含乙個正整數 q,表示詢問的數目。

之後 q 行,每行兩個整數a 和b,表示詢問a 和b 之間最危險的邊危險程度的可能最小值。

輸出格式:

對於每個詢問, 在單獨的一行內輸出結果。如果兩個頂點之間不可達, 輸出impossible。

貨車運輸。最小瓶頸路。

code:

#include #include #include using namespace std;

const int wx=1000017;

inline int read()

while(ch>='0'&&ch<='9')

return sum*f;

}int fa[wx],dep[wx];

int f[wx][23],dis[wx][23];

int head[wx];

int n,m,num,q;

struct node

} if(x==y)return re;

for(int i=21;i>=0;i--)

} return max(re,max(dis[x][0],dis[y][0]));

}int main()

kruskal();

dfs(1,0); pre();

q=read();

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

return 0;

}

洛谷P2245 星際導航 最小生成樹 lca

給出乙個n 1 e5,m 3e5 n leq1e5,m leq3e5 n 1e5,m 3e 5的無向圖,無向圖的圖上有邊權。然後給出q 1 e5 q leq1e5 q 1e 5次詢問,每次詢問給出兩個點u,v u,vu,v,求u,v u,vu,v路徑上最大邊的最小值。應該是乙個挺常規的問題 容易想到...

洛谷P2245 星際導航

sideman做好了回到gliese 星球的硬體準備,但是sideman的導航系統還沒有完全設計好。為了方便起見,我們可以認為宇宙是一張有n 個頂點和m 條邊的帶權無向圖,頂點表示各個星系,兩個星系之間有邊就表示兩個星系之間可以直航,而邊權則是航行的危險程度。sideman 現在想把危險程度降到最小...

洛谷P2245 星際導航 kruskal重構樹

sideman 做好了回到 textgliese 星球的硬體準備,但是 textsideman 的導航系統還沒有完全設計好。為了方便起見,我們可以認為宇宙是一張有 nn 個頂點和 mm 條邊的帶權無向圖,頂點表示各個星系,兩個星系之間有邊就表示兩個星系之間可以直航,而邊權則是航行的危險程度。text...