列表

详情


NC23894. diagrams

描述

小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子。每行的格子从左到右可以放棋子,但要求除第一行外,每行放的棋子数不能超过上一行的棋子。玩了一会儿,小虎问大哥大虎:这个作业有很多种摆放法,我想都找到,但我不知道有多少中方案,你能帮助我么?
大虎是学校信息学集训队的,立刻想到用计算机来解决这个问题,并很快有了解答:13。第二天他把问题拿到了学校,并说如果第一行有N个格子,第二行有N-1个格子,…,第N行有1个格子,怎么办?现在请你一块来帮助他解决这个难题。
数据范围
30%数据:1≤N≤12
50%数据:1≤N≤30
100%数据:1≤N≤100

输入描述

仅一行,一个正整数N。

输出描述

一行,方案总数。

示例1

输入:

2

输出:

4

说明:

样例1说明N=2时,有如下4中摆放棋子法(*表示棋子,_表示空格):
方案法 1 2 3 4
摆放法 *_ ** *_ **
摆放法 _ _ * *

示例2

输入:

3

输出:

13

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3(3.5.2) 解法, 执行用时: 33ms, 内存消耗: 3436K, 提交时间: 2019-04-04 00:32:23

h = [0, 1]
for i in range(2, 105):
    h.append(h[i - 1] * (4 * i - 2) // (i + 1))
n = int(input())
print(h[n + 1] - 1)

上一题