zoukankan      html  css  js  c++  java
  • 卡特兰数

    板子题一

    P1641 [SCOI2010]生成字符串

    #define int long long
    int jc[maxn], ny[maxn], jcny[maxn];
    int C(int n, int m) {
    	return 1ll * jc[n] * jcny[n - m] % mod * jcny[m] % mod;
    }
    int lucas(int n, int m) {
    	if(m == 0) return 1;
    	return C(n % mod, m % mod) * lucas(n / mod, m / mod) % mod;
    }
    signed main() {
    	int n = read(), m = read()
    	jc[1] = ny[1] = jcny[1] = 1;
    	for (int i = 2; i <= maxn; i++) jc[i] = jc[i - 1] * i % mod;
    	for (int i = 2; i <= maxn; i++) ny[i] = (mod - mod / i) * ny[mod % i] % mod;
    	for (int i = 2; i <= maxn; i++) jcny[i] = (jcny[i - 1] * ny[i]) % mod;
    	cout << (lucas(n + m, m) - lucas(n + m, m - 1) + mod)  % mod << endl;
    }
    

    板子题二

    #10238. 「一本通 6.6 练习 9」网格
    恩,高精,python水过

    from math import *
    n,m = map(int, input().split())
    print(factorial(n + m) // factorial(m) // factorial(n)  -  factorial(n + m) // factorial(m - 1) // factorial(n + 1))
    
    n, m = map(int, input().split())
    def C(n, m):
        return jc[n]//jc[n - m]//jc[m]
    jc = [1]
    for i in range(1, m + n + 1):
        jc.append(jc[i - 1] * i)
    print(C(n + m, n) - C(n + m, n + 1))
    
  • 相关阅读:
    XML 的学习笔记3
    XML 的学习笔记2
    XML 的学习笔记1
    Tomcat 学习笔记2
    Tomcat 学习笔记1
    sol
    sol
    0、安装Ionic2
    ionic2 目录
    6、Angular Route 路由
  • 原文地址:https://www.cnblogs.com/hellohhy/p/13687092.html
Copyright © 2011-2022 走看看