description
如果一棵樹的所有非葉節點都恰好有n個兒子,那麼我們稱它為嚴格n元樹。如果該樹中最底層的節點深度為dinput(根的深度為0),那麼我們稱它為一棵深度為d的嚴格n元樹。例如,深度為2的嚴格2元樹有三個,如下圖:
給出n, d,程式設計數出深度為d的n元樹數目。
僅包含兩個整數n, d( 0 < n < = 32, 0 < = d < = 16)output
僅包含乙個數,即深度為d的n元樹的數目。sample input
【樣例輸入1】sample output2 2【樣例輸入2】
2 3【樣例輸入3】
3 5
【樣例輸出1】題解【樣例輸出2】
【樣例輸出2】
神題。想了半天想不出來。結果是道數學題設f[i]為深度<=i的n元樹的個數
那麼對於深度為i的n元樹的個數,就是f[i-1]^n個,因為他是n棵深度i-1的樹湊起來的
但是還有乙個問題。。
假如只有乙個根呢?
所以是f[i]=f[i-1]^n+1
最後輸出f[d]-f[d-1]
#include
#include
#include
#include
#include
using namespace std;
struct node
}f[35];
node multi(node n1,node n2)
int i=no.len;
while(no.a[i+1]>0)
while(no.a[i]==0 && i>1)i--;
no.len=i;
return
no;}
node del(node n1,node n2)
int i=no.len;
while(no.a[i+1]>0)
while(no.a[i]==0 && i>1)i--;
no.len=i;
return
no;}
node add(node n1,int n2)
int i=no.len;
while(no.a[i+1]>0)
while(no.a[i]==0 && i>1)i--;
no.len=i;
return
no;}
int n,d;
node pow_mod(node n1,int b)
return ret;
}int main()
f[0].a[1]=1;f[0].len=1;
for(int i=1;i<=d;i++)
node ans=del(f[d],f[d-1]);
for(int i=ans.len;i>=1;i--)printf("%d",ans.a[i]);
printf("\n");
return
0;}
bzoj1089 嚴格n元樹
如果一棵樹的所有非葉節點都恰好有n個兒子,那麼我們稱它為嚴格n元樹。如果該樹中最底層的節點深度為d 根的深度為0 那麼我們稱它為一棵深度為d的嚴格n元樹。例如,深度為 的嚴格 元樹有三個,如下圖 給出n,d,程式設計數出深度為d的n元樹數目。僅包含兩個整數n,d 0 僅包含乙個數,即深度為d的n元樹...
bzoj1089 SCOI2003 嚴格n元樹
題目 遞推公式 f i f i 1 n 1 當然,這樣看的話顯然long long是存不下的233。要用高精度對吧,但是,我很懶呀。so,粘個模板吧。include using namespace std long long f 17 int n,d long long ksm long long ...
BZOJ 2729 高精度 組合數學
思路 考慮 把男生排成一排 女生和老師往裡插 分成兩種情況.1.女生中間夾著老師 2.女生中間沒有夾著老師 求一下組合 階乘就好了 先放python 簡潔易懂 def fact n temp 1 for i in range 1,n 1 temp i return temp defc n,m if ...