每次一看題解就懂,自己就打死寫不出來
首先分步驟思考
把問題分層,分成無數的子問題
根據遞迴 遞推的定義,問題應具有子母問題解決方案一致的性質
找出第n想與他的前幾項之間的關係,就是遞推式(打表找規律不是蓋的)
然後**實現
目前更傾向於迴圈,見二叉樹構造版卡特蘭數
問法一:乙個共n個節點的二叉樹有?種不同的形態
問法二:卡特蘭數
問法三:見洛谷p1044
遞推式1:
f[n]=f[0]*f[n-1] + f[1]*f[n-2] + ... + f[n-1]*f[0] (n≥2)
f[n]=f[0]∗f[n−1]+f[1]∗f[n−2]+...+f[n−1]∗f[0](n≥2)
然後按照這個遞推式模擬就好了(**後面給)
既然上面標了,那就有遞推式2~
遞推式2:
h[n]=h[n-1]*(4*n-2)/(n+1)h[n]=h[n−1]∗(4∗n−2)/(n+1)
依舊按式子模擬(**後面給)
既然有2,那再來個3吧~
遞推式3:
h[n]=c[2n,n]/(n+1) (n=0,1,2,...)h[n]=c[2n,n]/(n+1)(n=0,1,2,...),cc是組合數
ps:c[m,n]=c[m-1,n-1]+c[m-1,n]ps:c[m,n]=c[m−1,n−1]+c[m−1,n]:且規定: c[n,0]=1 c[n,n]=1 c[0,0]=1c[n,0]=1c[n,n]=1c[0,0]=1
這個公式也叫組合數公式(下面那個也是)
於是仍然把標程放到最後~
遞推式4:
h[n]=c[2n,n]-c[2n,n-1] (n=0,1,2,...)h[n]=c[2n,n]−c[2n,n−1](n=0,1,2,...) 組合數cc不解釋了;
#include#include#include#include#includeusing namespace std;
int main()
{ int n;
long long f[10010];
cin>>n;
f[0]=1;
f[1]=1;
for(int i=2;i<=n;i++)
for(int j=0;j
我為什麼寫部落格?
在西北邊陲小鎮的我,竟然跑到了東北的乙個學校去學習理論物理,畢業後又出乎意料的幹了it,沒成為科學家,竟變身成了猿。時至今日,也進入這個行業快兩年了,磕磕碰碰了兩年,去過瀋陽,到過深圳,現在選擇了離家近的成都,當年的激情都快磨沒了,雖然過著平淡的生活,但還是和廣大年輕人一樣很浮躁。記得剛工作的時候,...
我為什麼寫部落格
今天不談技術,來說說我寫部落格的理由以及今後寫部落格的方向,以及自己的一點點想法。因此我寫部落格更多的是為了能幫助別人,其次才是對自己技術的梳理總結和沉澱。我本身寫文章的文筆功底不好,寫不出什麼漂亮的話,所以文章沒什麼亮點,都是簡單易懂的白話文。因此我的文章幾乎沒有被推薦的。但這並不代表我寫的文章就...
我為什麼寫部落格
三個目的 一是希望有朝一日能幫到需要的人 二是增加自我總結 自我思考的途徑 三是展示自己。相信絕大部分程式設計師都有在網上搜尋或是簡單或是複雜問題的經歷,我曾經獲益,因此我應該付出,為網路這個it技術溫床獻上乙份微薄力量。這是我的第乙個目的。和boss去分公司開會,來回得四個小時,我便問為什麼不讓分...