SCOI2005 王室聯邦 樹分塊

2022-06-06 23:06:10 字數 605 閱讀 4430

將一棵樹劃分為若干塊,每個塊未必連通,但並上這個塊的中心後連通,中心可以不是塊內的點,每個塊的大小 \(\in [b,3b]\)

經典的王室聯邦分塊法

dfs 整棵樹,對於每個子樹,將其中能分塊的結點分塊,不能分塊的結點以集合的形式上傳,和上一層一起分塊

最後多餘下來的一些點併入最後乙個塊中

#include using namespace std;

#define int long long

const int n = 1000005;

int n,b,c[n],x[n],vis[n],ind,t1,t2;

vector g[n];

setdfs(int p)

}res.insert(p);

return res;

}signed main()

setres = dfs(1);

if(ind==0) ++ind;

for(int t:res) c[t]=ind;

cout

SCOI 2005 王室聯邦 樹上分塊?

在wzh大神 ps 我是渣渣wzh 的部落格看見的乙個分塊題目,剛好要複習分塊,於是我就研究了一下樹上分塊,恩,這個題目的要求和樹上分塊差不多。沒什麼就是原來的size變成題目規定的b了,然後這就變成了分塊的模板題目。bzoj 大神wzh的部落格orzwzh description 餘 人國的國王想...

SCOI2005 王室聯邦

這一篇類似是強聯通的東東大家參考一下吧,我也不會講這題。大家可以傳送去我同學那裡看看的qaq傳送門 提交傳送門 題目描述 餘 人國的國王想重新編制他的國家。他想把他的國家劃分成若干個省,每個省都由他們王室聯邦的乙個成員來管理。他的國家有n個城市,編號為1.n。一些城市之間有道路相連,任意兩個不同的城...

SCOI2005 王室聯邦

餘 人國的國王想重新編制他的國家。他想把他的國家劃分成若干個省,每個省都由他們王室聯邦的乙個成員來管理。他的國家有n個城市,編號為1.n。一些城市之間有道路相連,任意兩個不同的城市之間有且僅有一條直接或間接的道路。為了防止管理太過分散,每個省至少要有b個城市,為了能有效的管理,每個省最多只有3b個城...