1. 程式人生 > 其它 >[AGC記錄] AGC005題解

[AGC記錄] AGC005題解

我覺得這一場非常神啊。
A, B題還是簡單題為什麼單調棧板子有400分啊
C的條件看起來有點像某個集訓隊作業題, 注意到直徑的性質以後就很簡單了。這tm有900?
D是經典容斥題 ~K Perm Counting
做法是先把限制容斥成至少的情況, 然後把限制建圖, 在鏈上dp或者用組合數搞搞即可。

E

E比較有意思, 但是發現兩個性質以後也比較簡單。
我們讓第一棵樹以\(x\)為根, 第二棵樹以\(y\)為根, 那麼第一個人可以走到這個點的前提是路徑上所有點\(u\)滿足\(depa_u < depb_u\)。還有一個性質是如果第一個人走到一個點, 這個點和連出的一條邊連向的點在第二棵樹上的距離大於\(2\)

, 第一個人就無敵了。所以我們的策略就是判斷第一個人可以到的所有點裡面能不能無敵, 不能無敵就找可以到的\(B\)裡面最深的點掛機就好了。

F

F貌似剛學NTT的時候做到了。然後現在再看啥也不會
首先可以把問題轉化成考慮一個點\(x\)\(ans_i\)的貢獻, 考慮一個\(x\)在多少情況下不在點集內, 那麼要麼是全在\(x\)的兒子的一個子樹裡面, 要麼是全不在\(x\)的子樹裡面。
那麼對貢獻求和就是答案了。
暴力算是\(n^2\)的, 但是可以發現列舉兒子的部分換成“有多少子樹大小為\(i\)的點”這一條件以後可以讓式子變成卷積, NTT即可。