運輸計畫noip

2022-05-10 04:01:58 字數 2805 閱讀 6599

靠!這道題tm搞了我好幾天,真是煩死人!!!早上打了乙個倍增的tm只有95分qaq。。。

然後一氣之下開始不斷卡常,各種玄學優化,可是就是t。。tat。。

可惡!晚上我就直接打了個tarjan,還好跑過了,可是打的我身心俱殘!!!彷彿想起了打splay的歲月,各個**3000+。。。

不過一次就打成功了,還算比較好吧。。。

先上95分的**

#include#include

#include

#include

#define maxn 600500

#define ll long long

using

namespace

std;

struct

sts[maxn];

struct

ququest[maxn];

ll n,m,u,v,root,tot,val,head[maxn],ceng[maxn],fa[maxn][

20],len[maxn],fedge[maxn],zou[maxn],cf[maxn],maxlen,l,r,ma;

inline

void

add(ll u,ll v,ll val)

inline

void

dfs(ll f,ll now)

}}inline

void

init()

}

}inline ll lca(ll a,ll b)

if(a!=b)

}a = fa[a][0

]; }

returna;}

inline ll find(ll pos,ll num)

if(val >= num) ma =max(ma,fedge[pos]);

return

val;

}inline ll check(ll ans)

}ma = -1

; find(

1,ce);

if(ma == -1) return0;

if(ans + ma >= maxlen) return1;

return0;

}int

main()

dfs(

0,1);

init();

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

r =maxlen;

while(l

printf(

"%lld

",l);

}

然後上個100 的!!!

noip2015 運輸計畫

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

NOIP2015 運輸計畫

題目鏈結 codevs 4632 題目大意 在一棵 n 節點樹上,有 m個運輸計畫 從ai 到 bi n,m 300000 問 把哪一條樹邊的權值變為0,可以使所有運輸計畫的最大距離最小,輸出這個最大距離的最小值。分析 0.首先要會lca和樹上差分。1.顯然,這道題要求樹上兩點之間的距離,所以要寫l...

noip 2015 運輸計畫

去題面的傳送門 題目的意思是 求將一棵樹上的任意一條邊權賦值為0時,所有航線的最長長度的最小值 想到二分答案 如何驗證?既然我們二分的答案是最長路線,也就是說,在將一條邊權賦值為0之後,所有的路線長度應該都小於等於mid。但是只能刪掉一條邊,所以這條邊是所有刪邊之前長度小於mid的路線的交邊。問題轉...