這道題我們整個機房討論將近半個小時沒有出結果,演算法導論都翻了。
突然,有乙個同學用十分暴力的並查集a了,於是大家興奮地都打了暴力。
5我一開始想暴力,直接建樹乙個乙個跳,覺得肯定不對。便覺得沒有頭緒。後來有一位同學a了,還真是這麼暴力!
什麼,你說如何快速查詢乙個點到lca的最後乙個被新增的邊?
打lct?orz,反正我不打。我們就這麼暴力的乙個乙個跳!
複雜度如何保證?我們可以合併的時候按秩合併,這樣深度只有log
(n)log(n)
log(n)
,暴力跳的時間複雜度自然就只有o(l
og(n
))o(log(n))
o(log(
n))了!想想就很酷。
蒟蒻**供嘲諷
#include
using
namespace std;
const
int n=
500010
;int fa[n]
, v[n]
, depth[n]
, n, m, cnt;
bool vis[n]
;int
find
(int x,
bool r)
inline
intmax
(int a,
int b)
inline
void
swap
(int
&a,int
&b)inline
intsolve
(int x,
int y)
int lca=y, ans=0;
while
(!vis[lca]
) ans=
max(ans, v[lca]
), lca=fa[lca]
;find
(x,0);
while
(x!=lca) ans=
max(ans, v[x]
), x=fa[x]
;return ans;
}inline
void
merge
(int x,
int y,
int cnt)
intmain()
}
noip模擬賽 bzoj2932旅行
題解 話說這道題啊,是真的坑,正解不難,但是想歪是很簡單的,在常規的貪心不行的時候,本人就想到了dp,自我感覺 非常有道理,方程式也寫了出來,結果莫名wa了50 的資料,不懂,聽大牛說是因為不滿足最優子結構。表示 寫dp的時候從來沒有關注過這個東西 先說dp吧,dp i j 表示前i個人,有j個人在...
NOIP模擬 BZOJ 2143 飛飛俠
飛飛國是乙個傳說中的國度,國家的居民叫做飛飛俠。飛飛國是乙個 n m 的矩形方陣,每個格仔代表乙個街區。然而飛飛國是沒有交通工具的。飛飛俠完全靠地面的彈射裝置來移動。每個街區都裝有彈射裝置。使用彈射裝置是需要支付一定費用的。而且每個彈射裝置都有自己的彈射能力。我們設第i行第j列的彈射裝置有 ai j...
noip模擬賽 bzoj2237龍珠雷達
題解 一道dp題,恩,沒錯,非常好,時間複雜度o n m m 爆了,恩,沒錯,非常好,看了是要優化了 讓我看看,恩,不是線段樹優化,不是斜率優化,不是四邊形不等式優化,what?那是什麼?行,我寫暴力 t2打成t1,原本70分 成功爆0 所以說,我,這個,i,應該忘記了,除了這些高大上的優化以外,還...