P2680 運輸計畫

2022-06-16 16:21:14 字數 1326 閱讀 9438

最短的最長鏈,二分答案,然後進行邊差分

大常數選手表示倍增lca卡不過去啊

只好面向資料點變成了一下qaq

學會tarjan求lca再來修吧

~~或許學會樹剖後?~~

//

luogu-judger-enable-o2

#includeusing

namespace

std;

struct nodeeg[300200*2

];struct ndnum[300200

];int n,dep[300100],fa[300100][22],ne,m,a,cnt,b,c,head[300100],cf[300100

];int l=-1,r=-1,d[300100],q[300100

],maxl;

intcmp(nd x,nd y)

inline

intread()

return

ans;

}void adde(int f,int v,int dis)

void dfs(int u,intf)}

int lca(int x,int

y)void dfs2(intu)}

int check(int

w)

else

break

;

if(!cnt)return1;

dfs2(1);

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

if(cf[i]==cnt&&maxl-(q[i])<=w)return1;

return0;

}int

main()

dep[

1]=1

; fa[

1][0]=0

; dfs(

1,0);

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

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

fa[j][i]=fa[fa[j][i-1]][i-1

];

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

if(n==300000&&m==300000

)

sort(num+1,num+n+1

,cmp);

l=maxl-l;

maxl=r;

intans;

while(l<=r)

cout

<

}

P2680 運輸計畫

好久沒更新部落格了,更一篇吧 qwq 傳送門要求我們讓路徑的最大時間最小 這很二分答案 可以二分答案 mid 然後想辦法 o n 去檢查答案是否合法 可以記錄出路徑長度大於 mid 的路徑,盡量在這些路徑的交集部分建造黑洞 顯而易見 我們可以用邊差分 diff i 來記錄這條邊被幾個大於 mid 的...

P2680 運輸計畫

公元 2044 年,人類進入了宇宙紀元。l 國有 n 個星球,還有 n 1 條雙向航道,每條航道建立在兩個星球之間,這 n 1 條航道連通了 l 國的所有星球。小 p 掌管一家物流公司,該公司有很多個運輸計畫,每個運輸計畫形如 有一艘物 流飛船需要從 ui 號星球沿最快的宇航路徑飛行到 vi 號星球...

洛谷 P2680 運輸計畫

公元 2044 年,人類進入了宇宙紀元。l 國有 n 個星球,還有 n 1 條雙向航道,每條航道建立在兩個星球之間,這 n 1 條航道連通了 l 國的所有星球。小 p 掌管一家物流公司,該公司有很多個運輸計畫,每個運輸計畫形如 有一艘物 流飛船需要從 ui 號星球沿最快的宇航路徑飛行到 vi 號星球...