洛谷 P2351 SDOi2012 吊燈

2021-09-27 22:26:19 字數 752 閱讀 2552

挺巧妙的一道題,類似樹形dp

大致題意:

先給你一棵樹,然後會讓你改變9次樹的形態,問:對於原始狀態和每次改變後的這棵樹,要你把這棵樹的節點分成若干組,使得所有組的節點均相連且所有組的節點數相同。請問當每組的節點數均為多少的滿足條件。

可以發現,每組的節點數一定是n的約數,且1,n肯定是。然後,通過畫圖等大力分析列舉後,可以得到乙個性質:若存在乙個答案x,那麼此刻樹中的所有子節點的子樹大小是x的倍數的子樹個數,一定》=n/x。(好多題解都是》=n/x,但是我感覺好像不會有》的情況的,只能等於,用等於試了一下是對的。)——————性質1

那麼現在我們要求每個節點的子樹大小了,dfs當然可以,雖然是o(n),不過常數挺大,現在又有乙個性質:對於(f[x]+19940105)mod(x-1)+1,我們發現,x的父節點,一定比x小,所以,倒著o(n)更新一遍節點子樹大小即可。————性質2

兩個性質,都是看題解的…

#include

using

namespace std;

const

int n=

1200005

;int n,cnt;

int fa[n]

,size[n]

,sum[n]

,num[n]

,prime[n]

;int

main()

printf

("%d\n"

,n);

}return0;

}

洛谷P2434 SDOI 區間

解題思路 這道題就是簡單的模擬啊。不過愣是沒有模擬對,看來還需要加強 實現能力。先按照左端點從小到大排序,每次驗證當前區間左端點是否大於設定的右端點,如果大於,說明不相交,就輸出設定的左右端點,如果小於等於,說明有相交的部分,不斷更新右端點。include include include inclu...

洛谷P2486 SDOI2011 染色

輸入格式 輸出格式 對於每個詢問操作,輸出一行答案。輸入樣例 1 6 5 2 2 1 2 1 1 1 21 3 2 42 5 2 6q 3 5 c 2 1 1 q 3 5 c 5 1 2 q 3 5 輸出樣例 1 典型的樹鏈剖分 線段樹,線段樹維護 區間左右端點顏色 和 區間顏色數。注意 當 上傳或...

洛谷 P2486 SDOI2011 染色

洛谷傳送門 給定一棵 nn 個節點的無根樹,共有 mm 個操作,操作分為兩種 將節點 aa 到節點 bb 的路徑上的所有點 包括 aa 和 bb 都染成顏色 cc。詢問節點 aa 到節點 bb 的路徑上的顏色段數量。顏色段的定義是極長的連續相同顏色被認為是一段。例如112221由三段組成 11 22...