动态转移方程求助

P1754 球迷购票问题

# ~~动态转移方程是啥~~
by t162 @ 2019-03-25 17:53:51


``` #include<bits/stdc++.h> using namespace std; long long a,b[21]; int main() { scanf("%lld",&a); b[0]=1; b[1]=1; for(int i=2;i<=a;i++) { b[i]=b[i-1]*(4*i-2)/(i+1); } printf("%lld",b[a]); } ```
by 樱雪喵 @ 2019-08-11 10:44:04


我来给你解答 这个题有二维递推和一维递推两种方法 二维递推很好理解,你就理解成一个整数集合可构成的二叉查找树的数目: $f(n)=f(0)f(n-1)+f(1)f(n-2)+...+f(n-1)f(0)$,$f(0)=1$。 一维递推需要用到通项公式:$f(n)=C_{2n}^n$(组合数) 由组合数公式$C_{2n}^n=(2n)!/(n!n!)$,$C_{2n-2}^{n-1}=(2n-2)!/((n-1)!(n-1)!)$,手推一下就得到$C_{2n}^n=C_{2n-2}^{n-1}*(4n-2)/n$。
by wancong @ 2020-01-15 23:33:56


|