點分治學習筆記

wuhupai發表於2024-05-25

演算法很簡單,就是每次找重心,然後dfs一遍子樹,求出跨越u的路徑答案,然後繼續。因為每次子樹大小會減少一半,所以時間是有保障的。

求是否有路徑=k
直接列舉路徑,然後樹狀陣列即可
求有多少路徑<=k
直接列舉路徑,然後樹狀陣列即可
求有多少路徑%3=0
直接列舉路徑,然後開個桶統計即可
求有多少路徑=k且邊數最少
直接列舉路徑,然後二分即可,前面要去重

相關文章