Pila P1044 (Logu)

Portal de título original

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Idea: Primero defina la matriz y las variables, y luego haga f [0] = 1, f [1] = 1, el valor predeterminado f [0] = 1 es simplemente para satisfacer el cálculo de la expresión y no tiene un significado práctico; luego use el Cattleya número a recursivamente La fórmula se puede utilizar para encontrar los valores de f de 2 an , y finalmente dar salida a f [n].
Principio de número de Cattlean: Sea h (0) = 1, h (1) = 1, catalán número satisface la fórmula de recurrencia: h (n) = h (0) * h (n-1) + h (1) * h (n-2) +… + h (n-1) h (0) (n> = 2)

Referencia de código

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1001;
int f[MAXN],n;
int main(){
    
    
    cin>>n;
    f[0] = 1, f[1] = 1;
    //从2到n按规律递推
    for(int i = 2;i <= n;i++)
        for(int j = 0;j < i;j++)
            f[i] += f[j] * f[i-j-1];//卡特兰数递推式
    cout<<f[n];
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/Bertil/article/details/106795058
Recomendado
Clasificación