樹上摩托 NOIP2016提高A組模擬9 4

2021-07-22 13:00:59 字數 1657 閱讀 5913

sherco是一位經驗豐富的魔♂法師。

sherco在第零次聖杯戰爭中取得了勝利,並取得了王之寶藏——王の樹。

他想把這棵樹砍去任意條邊,拆成若干棵新樹,並裝飾在他的摩托上,讓他的摩托更加酷炫。

但sherco認為,這樣生成的樹不具有美感,於是sherco想讓每棵新樹的節點數相同。

他想知道有多少種方法分割這棵樹。

樣例輸入:

第一行乙個正整數n,表示這棵樹的結點總數。

接下來n-1行,每行兩個數字x,y表示編號為x的結點與編號為y的結點相連。結點編號的範圍為[1,n]。

6 1 2

2 3

2 4

4 5

5 6樣例輸出:

乙個整數,表示方案數。注意,不砍去任何一條邊也算作一種方案。

3資料範圍:

對於40%的資料,n ≤ 15

對於60%的資料,n ≤ 10^5

對於100%的資料,n ≤ 10^6

資料規模非常大,請使用高效的讀入方式。

只知道和n的約數有關。。。。。

40%:暴力列舉刪哪些邊。

60%:搞一搞可以知道一些性質。

1.樹的大小只可能是n的約數。

2.樹的大小確定後,如果有分割方案只可能有一種。

所以直接列舉樹的大小,dfs判斷即可。時間o(

nn√)

100%:繼續找性質。

發現,如果乙個節點可以作為一塊的根,那麼以這個節點為根的子樹的size一定能被塊的大小整除。

預處理出所有節點size,列舉樹的大小k,如果size為k的倍數的節點數的大小是n/k的話,便是合法方案,加入答案。時間o(

nlog

n)。

然而,如果用dfs弄會爆棧,所以用bfs吧(好難搞qwq)

NOIP2016提高組總結

這次noip可以用幾個字來形容 浪的飛起,頹的不行。中午從校門出發,在車上睡了半個車程。4 00左右,霧比較大,遠處的小蠻腰若隱若現。你好,廣州。5 00,symbol叫我們去看考場,結果被拒在門外,然後大家都散了。我與其它幾位小夥伴匆匆吃完飯,回到酒店,該看電視看電視,中途開會,提醒我們一些注意事...

NOIP2016 提高組 總結

這是倒數第三次noip了。今年我初三。去年的傷痕還未褪去,我在比賽前意識到,當務之急其實是鞏固基礎而非深究一些難題。於是賽前兩周,我認真讀了白書的前面部分,尤其重點練習了dp。dp作為基礎演算法之一,其靈活性極高,所以可以出得很難,也是各種比賽的寵兒。練好dp是尤為重要的。賽前好幾場模擬賽都做得很爛...

NOIP2016提高組總結

來到了廣州,不錯啊,旁邊的飯店很多,可以好好的腐一下了。一群人走進了乙個小巷,住進了乙個七天酒店,發現房間裡面好小啊。吃完飯後,一直都在腐敗。通知開會的同學並沒有到我們的房間來,結果在結束開會的前幾分鐘我們才過去。早早的睡了 第一天,狀態不錯。早早的到了考場。開啟c 發現除錯不了,嚇了我一大跳。做到...