1. 程式人生 > >[BZOJ1089][SCOI2003]嚴格n元樹

[BZOJ1089][SCOI2003]嚴格n元樹

font scu rip 一個數 嚴格 精度 logs end 我們

1089: [SCOI2003]嚴格n元樹

Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1925 Solved: 966 [Submit][Status][Discuss]

Description

  如果一棵樹的所有非葉節點都恰好有n個兒子,那麽我們稱它為嚴格n元樹。如果該樹中最底層的節點深度為d (根的深度為0),那麽我們稱它為一棵深度為d的嚴格n元樹。例如,深度為2的嚴格2元樹有三個,如下圖:

技術分享

  給出n, d,編程數出深度為d的n元樹數目。

Input

  僅包含兩個整數n, d( 0 < n < = 32, 0 < = d < = 16)

Output

  僅包含一個數,即深度為d的n元樹的數目。

Sample Input

【樣例輸入1】
2 2

【樣例輸入2】
2 3

【樣例輸入3】
3 5

Sample Output

【樣例輸出1】
3

【樣例輸出2】
21

【樣例輸出2】
58871587162270592645034001
設$dp[i]$表示深度不超過$i$的嚴格$n$元樹 那麽$dp[i]=dp[i-1]^{n}+1$ $ans=dp[d]-dp[d-1]$ Python不用寫高精度,美滋滋
import sys
n, d = map(int, sys.stdin.readline().split())
if d == 0:
    
print(1) else: f = [] f.append(1) for i in range(1, d + 1): f.append(f[i - 1] ** n + 1) print f[d] - f[d - 1]

[BZOJ1089][SCOI2003]嚴格n元樹