P4492-[HAOI2018]蘋果樹【dp】
正題
題目連結:https://www.luogu.com.cn/problem/P4492
題目大意
開始有一個節點,第 i i i次在一個兒子不超過 2 2 2的節點下面長出一個新兒子編號為 i i i。求所有方案下樹的路徑長度和。
解題思路
考慮計算每條邊的貢獻,設 g i g_i gi表示大小為 i i i的樹的形態個數, f i f_i fi表示所有大小為 i i i的樹的路徑長度和。然後題目給出的要求就是子節點編號比父節點大。
那麼
g
g
g有轉移
g
i
+
1
=
∑
j
=
0
i
g
j
g
i
−
j
C
i
j
g_{i+1}=\sum_{j=0}^ig_jg_{i-j}C_{i}^j
gi+1=j=0∑igjgi−jCij
f
f
f的轉移複雜一點,列舉子樹大小
j
j
j和
i
−
j
i-j
i−j,那麼子樹
j
j
j自己的貢獻就是
g
j
∗
j
∗
(
n
−
j
)
g_j*j*(n-j)
gj∗j∗(n−j),然後要乘上
g
i
−
j
g_{i-j}
gi−j表示每種左子樹形態對應的樹的形態個數。右邊
i
−
j
i-j
i−j同理,就有轉移方程
f
i
+
1
=
∑
j
=
0
i
(
g
i
g
j
(
j
∗
(
n
−
j
)
+
(
i
−
j
)
∗
(
n
−
i
+
j
)
)
+
f
j
∗
g
i
−
j
+
f
i
−
j
∗
g
j
)
∗
C
i
j
f_{i+1}=\sum_{j=0}^i(\ g_ig_j(j*(n-j)+(i-j)*(n-i+j))+f_j*g_{i-j}+f_{i-j}*g_j\ )*C_{i}^j
fi+1=j=0∑i( gigj(j∗(n−j)+(i−j)∗(n−i+j))+fj∗gi−j+fi−j∗gj )∗Cij
時間複雜度 O ( n 2 ) O(n^2) O(n2)
c o d e code code
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=2100;
ll n,p,f[N],g[N],c[N][N];
int main()
{
scanf("%lld%lld",&n,&p);
g[0]=c[0][0]=1;
for(ll i=1;i<=n;i++)
for(ll j=0;j<=i;j++)
c[i][j]=((j?c[i-1][j-1]:0)+c[i-1][j])%p;
for(ll i=0;i<n;i++){
for(ll j=0;j<=i;j++){
(g[i+1]+=g[j]*g[i-j]%p*c[i][j])%=p;
(f[i+1]+=(((i-j)*(n-i+j)%p+j*(n-j)%p)*g[j]%p*g[i-j]%p+f[j]*g[i-j]%p+f[i-j]*g[j]%p)%p*c[i][j]%p)%=p;
}
}
printf("%lld\n",f[n]);
return 0;
}
相關文章
- 樹形DP!
- 樹形DP
- 樹上染色(樹形dp)
- [筆記]樹形dp筆記
- 樹形DP二三知識
- POJ 2486 Apple Tree(樹形dp)APP
- POJ3107Godfather[樹形DP 樹的重心]Go
- ZROJ#398. 【18提高7】隨機遊走(期望dp 樹形dp)隨機
- CCF之網路延時(樹形dp)
- POJ 3107 Godfather(樹形dp)Go
- HDU 5326 Work (基礎樹形dp)
- hdu 4123 樹形DP+RMQMQ
- 【動態規劃】樹形DP完全詳解!動態規劃
- 【樹形dp】poj 1947 Rebuilding RoadsRebuild
- 二叉蘋果樹蘋果
- WeetCode4 —— 二叉樹遍歷與樹型DP二叉樹
- NOIP2003加分二叉樹[樹 區間DP]二叉樹
- POJ 1664 放蘋果 (基礎組合dp)蘋果
- CF940E Cashback 線段樹優化DP優化
- 【dp+離散化+線段樹優化】Paint優化AI
- BZOJ3757 : 蘋果樹蘋果
- Luogu P3177 樹上染色 [ 藍 ] [ 樹形 dp ] [ 貢獻思維 ]
- dp 套 dp(dp of dp)小記
- Puzzles CodeForces 696B 樹形DP 期望計算
- hdu4313 貪心並查集 || 樹形dp並查集
- Codevs1378選課[樹形DP|兩種做法(多叉轉二叉|樹形DP+分組揹包)---(▼皿▼#)----^___^]dev
- 永遠成長的蘋果樹蘋果
- BZOJ5304 : [Haoi2018]字串覆蓋字串
- POJ 1947 Rebuilding Roads(基礎的樹形dp)Rebuild
- DP套DP
- BZOJ1864[ZJOI2006]三色二叉樹[樹形DP]二叉樹
- E73 樹形DP P3177 [HAOI2015] 樹上染色
- [DP] 數位DP
- Codeforces 461B. Appleman and Tree[樹形DP 方案數]APP
- 樹形dp - Codeforces Round #322 (Div. 2) F Zublicanes and Mumocrates
- [SDCPC2023] Colorful Segments 線段樹轉移DP
- dp套dp 隨寫
- 計蒜客:最甜的蘋果(線段樹)蘋果