全部评论
第一个图和第三个图是不一样的 你给每个入口编个号, 6个出口的圆左侧从上到下为ABC,右侧从上倒下为DEF 第一个图,表示的是A-D,B-E,C-F 第三个图,表示的是A-F,B-C,D-E
// 感觉dp可以过,没有考虑取模的情况
int[] dp = new int[n / 2 + 1];
dp[1] = 1;
dp[2] = 2;
dp[3] = 5;
// 计算每个dp的值
for (int j = 4; j <= n / 2; j++) {
int sum = 0;
// 将12 14 ... 1n/2的组合数累加起来
for (int i = 2; i <= j; i += 2) {
if (i > 4 && i < j * 2 - 2) {
// 如果可以分为两部分:取两部分组合数的乘积×2
sum += 2 * dp[(i - 2) / 2] * dp[(j * 2 - i) / 2];
} else {
// 只能分成一部分
sum += 2 * dp[(j * 2 - i) / 2];
}
// System.out.println("j:" + j + " i:" + i + " sum:" + sum);
}
// j为奇数的情况,只用加一次
if (j % 2 == 1)
sum += dp[(j - 1) / 2] * dp[(j - 1) / 2];
dp[j] = sum;
}
其实是画的不好,
😁😥
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享