題面 https://loj.ac/problem/3247 題解 考慮CDQ分治。對於\(solve(l,r,v)\)(其中l,r表示當前處理到的區間的左右端點,v是一個vector,存放當前區間內待處理的所有詢問的序號): 設\(m=(l+r)>> ...
題面 https: loj.ac problem 題解 不妨設向下墜落的方向為正方向,那么世界i所處的位置為 it A i i geq 。那么我們可以畫出各世界的S t圖像。 先考慮如果 A i gt A Q i ,即i需要追趕的情況。 如果射線i與射線j在某處相交,且j gt i,那么我們稱這個點是i的 向上拐點 ,是j的 向下拐點 。 那么有性質 :從i出發,遇到向上拐點就拐,那么一定是一種最 ...
2020-02-09 14:18 5 490 推薦指數:
題面 https://loj.ac/problem/3247 題解 考慮CDQ分治。對於\(solve(l,r,v)\)(其中l,r表示當前處理到的區間的左右端點,v是一個vector,存放當前區間內待處理的所有詢問的序號): 設\(m=(l+r)>> ...
題意 求所有\(n\)元逆序對數為\(k\)的排列所對應的笛卡爾樹中(每次選區間最小連在父親下,再分為左右兩部分遞歸),求每個位置在所有樹中的深度和 \(1 \le n \le 300\) 思路 ...
題解 loj3265 3266 3267 USACO 2020.2 Platinum(全) loj3265 「USACO 2020.2 Platinum」Delegation 題目鏈接 因為是最大化最小值,考慮二分答案。 設當前二分的答案為\(K\)。則要判斷是否有一種划分方式 ...
LCA(least common ancestors)最近公共祖先 指的就是對於一棵有根樹,若結點z既是x的祖先,也是y的祖先,那么z就是結點x和y的最近公共祖先。 定義到此。 那么怎么求LCA ...
LCA指的是最近公共祖先(Least Common Ancestors),如下圖所示: 4和5的LCA就是2 那怎么求呢?最粗暴的方法就是先dfs一次,處理出每個點的深度 ...
先瞎扯幾句 樹上倍增的經典應用是求兩個節點的LCA 當然它的作用不僅限於求LCA,還可以維護節點的很多信息 求LCA的方法除了倍增之外,還有樹鏈剖分、離線tarjan ,這兩種日后再講(眾人:其實是你不會吧:unamused:。。。) 思想 樹上倍增嘛,顧名思義就是倍增 相信倍增 ...
Update: 2019.7.15更新 萬分感謝[寧信]大佬,認認真真地審核了本文章,指出了超過五處錯誤捂臉,太尷尬了. 萬分感謝[寧信]大佬,認認真真地審核了本文章,指出了超過五處錯誤捂臉,太尷尬了 ...
題面 LOJ#6435. 「PKUSC2018」星際穿越 題解 **參考了 這位大佬的博客 ** 這道題好惡心啊qwq~~ 首先一定要認真閱讀題目 !! 注意 \(l_i<r_i<x_i\) 這個條件 !! 所以它詢問的就是向左走的最短路了 . 不難發現只有兩種策略 ...