首先有個很奇妙而且很有用的性質:每個二叉樹對應唯一的中序遍歷,然後每個二叉樹出現概率相同。所以n個節點的二叉樹形態是n!種(題目中說了*n!已經是提示了),對每種方案求和即可得到期望。令f[i]表示i個節點的子樹,根深度為1時,所有點的期望深度之和乘i!的值,令g[i]表示i個節點的子樹,期望兩兩路徑之和乘i!的值。
然後得到f[i]=i*i!+σc(i-1,l)(f[l]*r!+f[r]*l!),g[i]=σc(i-1,l)(g[l]*r!+g[r]*l!+f[l]*r!*(r+1)+f[r]*l!*(l+1)),其中0<=l2)
這題這麼水的嗎qwq?其實當模數做ntt時,貌似可以分治ntt優化o(nlog2n),反正我不會就不管了。
#includeusingview codenamespace
std;
const
int n=2019
;int
n,mod,c[n][n],fac[n],f[n],g[n];
intmain()
f[1]=1
;
for(int i=2;i<=n;i++)
f[i]=(f[i]+1ll*i*fac[i])%mod;
}printf("%d
",g[n]);
}
HAOI2018 簡要題解
以前做過的 haoi2018 染色 haoi2018 蘋果樹暫時不更 haoi2018 字串覆蓋 已經棄療了。總體難度 medium 偏 easy,但是 luogu4495 haoi2018 奇怪的揹包 想不到是真的腦抽。可以在 找到。小 c 和小 g 經常在一起研究搏弈論問題,有一天他們想到了這樣...
HAOI2018 反色遊戲
小c和小g經常在一起研究搏弈論問題,有一天他們想到了這樣乙個遊戲 有乙個 n nn 個點 m mm 條邊的無向圖,初始時每個節點有乙個顏色,要麼是黑色,要麼是白色 現在他們對於每條邊做出一次抉擇 要麼將這條邊連線的兩個節點都反色 黑變白,白變黑 要麼不作處理 他們想把所有節點都變為白色,他們想知道在...
二叉蘋果樹
我們可以把保留邊轉換成保留點 因為我個人對保留點熟 跟據樹的性質,乙個點有0or1個根。所以我們可以把邊上的蘋果數轉移到子節點上。根據題意可知這應是一道dp題 廢話 設f i j 為以i為根的樹上保留j個節點的最大權值和,又因為這是個二叉樹,所以我們不妨設左子樹要保留的節點數為k,那麼右子樹的需要保...