准备春招,继续做题了。

#include <bits/stdc++.h>

int main(int argc, char *argv[]) {
  int node_num;
  std::cin >> node_num;

  std::vector<int> dp(node_num + 1, 0);
  dp[0] = 1;
  dp[1] = 1;

  // 节点数
  for (int i = 2; i <= node_num; ++i) {
    // 以编号j的结点作为头节点
    for (int j = 1; j <= i; ++j) {
      dp[i] += dp[j - 1] * dp[i - j];
    }
  }

  std::cout << dp[node_num] << std::endl;

  return 0;
}