靠!這道題tm搞了我好幾天,真是煩死人!!!早上打了乙個倍增的tm只有95分qaq。。。
然後一氣之下開始不斷卡常,各種玄學優化,可是就是t。。tat。。
可惡!晚上我就直接打了個tarjan,還好跑過了,可是打的我身心俱殘!!!彷彿想起了打splay的歲月,各個**3000+。。。
不過一次就打成功了,還算比較好吧。。。
先上95分的**
#include#include然後上個100 的!!!#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);
}
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的路線的交邊。問題轉...