我也想学数据结构(感谢cqupt…
发布时间: 2015年11月8日 22:31 最后更新: 2015年11月8日 22:33 时间限制: 1000ms 内存限制: 128M
描述
NotDeep一直不擅长数据结构,于是找来slowlight帮助他。slowlight于是就从二叉平衡树讲起(纳尼?!)
平衡二叉树(Balanced Binary Tree)具有以下性质的一种树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树
讲完了slowlight就给NotDeep出了一道练习题:一棵高度为h的二叉平衡树,它的节点数最少为多少?NotDeep表示依然难得令人发指,于是请你借助编程来帮帮他。
输入
输入数据有多组,每组一行,包括一个整数h (0<= h <= 1000)
输出
对于每个测试实例,要求输出一个答案,即最少的节点数。每个输出占一行。答案可能很大,答案需要对2015取模。
样例输入1 复制
1
2
100
样例输出1
1
2
360
高为h的AVL树的最小节点数:
F(h) = F(h-1)+F(h-2) + 1
F(0) = 0
F(1) = 1
AC代码
#include<stdio.h>
int qdu[1001];
int init()
{
qdu[1] = 1;
for(int i = 2;i <= 1000;i++) qdu[i] = (qdu[i-1] + qdu[i-2] + 1);
return 0;
}
int main()
{
int n;
init();
//for(int i = 0;i <= 10;i++) printf("%d ",qdu[i]); return 0;
while(~scanf("%d",&n)) printf("%d\n",qdu[n]);
return 0;
}