2286 问题 K: 蓝桥杯2018年第九届真题-堆的计数

时间限制: 1s 内存限制: 128MB 提交: 184 解决: 60
题目描述
我们知道包含N个元素的堆可以看成是一棵包含N个节点的完全二叉树。  
每个节点有一个权值。对于小根堆来说,父节点的权值一定小于其子节点的权值。  

假设N个节点的权值分别是1~N,你能求出一共有多少种不同的小根堆吗?  

例如对于N=4有如下3种:

    1
   / \
  2   3
 /
4

    1
   / \
  3   2
 /
4

    1
   / \
  2   4
 /
3

由于数量可能超过整型范围,你只需要输出结果除以1000000009的余数。 

输入

一个整数N。

对于40%的数据,1<=N<=1000

对于70%的数据,1<=N<=10000

对于100%的数据,1<=N<=100000

输出
一个整数表示答案。 
样例输入
4
样例输出
3
提示

零基础的同学可以先学习基础,教程见:  C语言教程C++教程编译器教程数据结构教程Python教程单片机教程

视频教学见视频网课

比赛公告

2018年真题精选

2194,2276,2277,2279,2280,2281,2282,2283,2284,2285,2286,2287,

2288,2291,2292,2294,2296


2194,2276,2277,2279,2280,2281,2282,2283,2284,2285,2286,2287,

2288,2291,2292,2294,2296