1. 程式人生 > >[BZOJ4001][TJOI2015]概率論(卡特蘭數+找規律)

[BZOJ4001][TJOI2015]概率論(卡特蘭數+找規律)

Address

Solution

眾所周知, n 個節點,兩兩不同構的二叉樹的數量為 Catalan(n)
其中 Catalan(n) 為卡特蘭數,即 C2nnC2nn1=C2nnn+1
我們還需要求出: fn 表示 n 個節點,兩兩不同構的二叉樹的葉子節點數之和。
通過找規律,得到結論:

fn=n×Catalan(n1)
證明:一棵 n 個節點的二叉樹,刪掉一個葉子就能得到一棵 n1 個節點的二叉樹。而一棵 n1 個節點的二叉樹,有
n
個可插入葉子的位置,插入後能得到一棵 n 個葉子節點的二叉樹,故一棵 n 個節點的二叉樹中選一個葉子節點,與一棵 n1 個節點的二叉樹中選一個空位置一一對應。得證。
下面來推期望。
顯然答案為 fnCatalan(n)
fnCatalan(n)=n×(Catalan(n1))Catalan(n)
=n×C2(n1)n1nC2nnn+1
=(2(n
1))!((n1)!)2(2n)!(n!)2×(n+1)

=1(2n1)×2nn2×(n+1)
=n2×(n+1)(2n1)×2n=n×(n+1)2×(2n1)

Code

只有輸入一行輸出一行,可見此題很水

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using
namespace std; int n; int main() { cin >> n;

相關推薦

[BZOJ4001][TJOI2015]概率論+規律

Address Solution 眾所周知, nn 個節點,兩兩不同構的二叉樹的數量為 Catalan(n)Catalan(n) 。 其中 Catalan(n)Catalan(n) 為卡特蘭數,即 Cn2n−Cn−12n=Cn2nn+1C2nn−C

BZOJ4001】[TJOI2015] 概率論

點此看題面 大致題意: 問你一棵\(n\)個節點的有根二叉樹葉節點的期望個數。 大致思路 看到期望,比較顯然可以想到設\(num_i\)為\(i\)個節點的二叉樹個數,\(tot_i\)為所有\(i\)個節點的二叉樹的葉節點總數。 則答案顯然為\(\frac{tot_i}{num_i}\)。 而

HDU 1134 Game of Connections

cut res ras sam eof cpp ont des tel 題目代號:HDU 1134 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1134 Game of Connections Time Limit: 200

N個節點的二叉樹有多少種形態

面試 誤區 樹的定義 節點 類型 基礎 更多 大於等於 證明 這是一道阿裏的面試題。其實算不上新鮮,但是我之前沒關註過,如今碰到了,就順便探討下這個問題吧:) 拿到這個題,首先想到的是直接寫出表達式肯定不行,所以有必要從遞推入手。由特殊到一般,歸納法麽~而且二叉樹離不開遞推

組合數——51nod 1120 機器人走方格 V3

51nod 1120 機器人走方格 V3 卡特蘭數介紹 #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespac

luogu 1375 小貓

type define 是我 () fir 麻煩 first src space 這是我做題史上摔得最慘的一道黃題,15條記錄轉眼化為淚水。o(╥﹏╥)o 這道題目從10.12開始嘗試,隨機跳題跳到了這題,一看就是卡特蘭數,因為樣例太像了。。 然後小心證明 這個就

洛谷P1044 :棧

https://www.luogu.org/problemnew/show/P1044 題目背景 棧是計算機中經典的資料結構,簡單的說,棧就是限制在一端進行插入刪除操作的線性表。 棧有兩種最重要的操作,即pop(從棧頂彈出一個元素)和push(將一個元素進棧)。 棧的重要性不言自

n個數的出棧方式

問題 給定n個數,有多少種出棧序列,進棧是按照順序進棧? 分析:當n為1時: f(1) = 1 //即 1 當n為2時: f(2) = 2;//12, 21 當n為3

hdu 1023 ——Train Problem II+高精度+java

Train Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7977

CSU 1789: catalansqure JAVA

題目:InputOutputSample Input59Sample Output1583850964596120042686772779038896這個題目意思很簡單,就是說,C是卡特蘭數,求S很明顯

HDU1023——Train Problem II

=======================================================================卡特蘭數卡特蘭數又稱卡塔蘭數,是組合數學中一個常出現在各種計數問題中出現的數列。由以比利時的數學家歐仁·查理·卡塔蘭 (1814–1894)命名。 卡特蘭公式的應用很廣

CSU 1320: Scoop water JAVA

題目:Description  zzy今天剛買了兩個水瓢A和B,容量都是為1升,童心未泯的他打算用這個水瓢來玩遊戲。  首先zzy準備了一個容量可看作無窮大的水缸,剛開始水缸是空的,然後用水瓢A往水缸里

HDU 1023 Train Problem II

Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11019    Accept

Catalan

公式: n <= 2 時, f(n) = n; n > 2時, f(n) = (4n - 2) / (n+1) * f(n-1) 1-100的卡特蘭數列表如下: n             f(n) 1 1 2 2 3 5

bzoj 1485: [HNOI2009]有趣的數列

1485: [HNOI2009]有趣的數列 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1226  Solved: 652 [Submit][St

[ACM] hdu 2067 小兔的棋盤Catalan

小兔的棋盤 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5814    Accepted Submissio

[TJOI2015]概率論[]

ace inline cpp name 化簡 namespace urn pre n-2 題意 \(n\) 個節點二叉樹的葉子節點的期望個數。 \(n\leq 10^9\) . 分析 實際詢問可以轉化為 \(n\) 個點的不同形態的二叉樹的葉子節點總數。 定義 \(f_n

【專題】計數問題排列組合,容斥原理,

spl 狀態 ans 補集 方便 常用 括號 inf 不存在 ---下面都是學習的筆記,還沒有整理,比較淩亂,有需自取吧。--- 【排列組合】 <加法原理>做一件事情有n個方法,第i個方法有pi種方案,則一共有p1+p2+...+pn種方案。 <乘法原理&

【算法專題】計數數列

n-1 映射 點分治 blog -s 方法 .org div n-k Catalan數列:1 1 1 2 5 14 42 132 429 1430 4862 16796 【計數映射思想】 參考:卡特蘭數 — 計數的映射方法的偉大勝利 計數映射:將難以統計的數映射為另一種形式

【HDU - 1134 】Game of ConnectionsJAVA大數加法,

題幹: This is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, ... , 2n - 1, 2n consecutively in clockwise order on the