站外题求助,悬一关
  • 板块学术版
  • 楼主_Gabriel_
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/8/7 11:21
  • 上次更新2023/11/3 05:27:20
查看原帖
站外题求助,悬一关
941502
_Gabriel_楼主2023/8/7 11:21

说明

求由 nn 个结点构成的不同的二叉树数。n≤100n \le 100, 每个节点均认为是等价的。

输入格式

输入一个整数 nn,表示结点数。

输出格式

输出对应的答案。

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

__int128 fun(__int128 n) {
    if (n == 0) {
        return 1;
    } else {
        __int128 s1 = fun(n - 1);
        __int128 s2 = 4 * n - 2;
        __int128 s3 = n + 1;
        return s1 * s2 / s3;
    }
}
inline void read(__int128 &X) {
    X = 0;
    int w = 0; 
	char ch = 0;
    while (!isdigit(ch)) {
		w |= ch == '-';
		ch = getchar();
	}
    while(isdigit(ch)) {
		X = (X << 3) + (X << 1) + (ch ^ 48);
		ch = getchar();
	}
    if (w) {
    	X = -X;	
	}
}

void print(__int128 x) {
    if (x == 0) {
    	return ;
	} 
    if (x < 0) {
    	putchar('-');
		x = -x;
	}
    print(x / 10);
    putchar(x % 10 + '0');
}
int main() {
    __int128 n;
    read(n);
    __int128 ans = fun(n);
    print(ans);
    return 0;
}

提交只有c++语言。

2023/8/7 11:21
加载中...