http://poj.org/problem?id=1095

先求出n个节点数的二叉树的形态有多少种。卡特兰数f[n]=f[n-1]*(4*n-2)/(n+1);再递归求。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define ll long long
#define maxn 200
using namespace std; ll f[maxn];
int n,m; void inti()
{
f[]=;
for(int i=; i<; i++)
{
f[i]=f[i-]*(*i-)/(i+);
}
} void deal(int n,int k)
{
int i,sum=;
if(n==) {printf("X"); return ;}
for(i=; sum+f[i]*f[n--i]<k; i++)
{
sum+=(f[i]*f[n--i]);
}
k-=sum;
if(i)
{
printf("(");
deal(i,(k-)/f[n--i]+);
printf(")");
}
printf("X");
if(i!=n-)
{
printf("(");
deal(n--i,(k-)%f[n--i]+);
printf(")");
} } int main()
{
inti();
while(scanf("%d",&n)!=EOF)
{
if(n==) break;
for(int i=; ; i++)
{
if(n>f[i])
{
n-=f[i];
}
else{
m=i;
break;
}
}
deal(m,n);
printf("\n");
}
return ;
}

最新文章

  1. eclipse:不能在tomcat里添加一个项目的解决方法
  2. 从C#到Objective-C,循序渐进学习苹果开发(6)--视图控制器的使用
  3. innodb insert buffer 插入缓冲区的理解
  4. 使用git命令提交远程github仓库的时候提示&quot;rejected&quot;(拒绝)解决办法
  5. aix-裸设备文件大小查看
  6. hdu 1530 最大团模板
  7. Cloudera Impala 之 ORDER BY without LIMIT currently not supported
  8. USACO月赛数据
  9. 算法设计手冊(第2版)读书笔记, Springer - The Algorithm Design Manual, 2ed Steven S.Skiena 2008
  10. 孙弘与Masa Maso 做互联网最贵的衬衫(2)_人物对话_中国时尚品牌网
  11. setAttribute设置无效
  12. 14.Git分支-rebase有趣的例子、变基带来的问题及解决方案
  13. VS下个人认为比较实用的插件
  14. js中利用cookie实现记住密码功能
  15. web api 本地测试
  16. Expo大作战(五)--expo中app.json 文件的配置信息
  17. 设计模式入门,策略模式,c++代码实现
  18. wireMock快速伪造restful服务
  19. HIVE基本语法以及HIVE分区
  20. oracle的sign()函数

热门文章

  1. C++函数后面加const修饰
  2. deciaml(十进制浮点运算)
  3. 判断一个int 型整数 是否为回文数
  4. jquery常用方法以及详解
  5. 利用PHPExcel转Excel柱形图
  6. Afianl加载网络图片(延续)
  7. 5. openCV中常用函数学习
  8. [IDEA学习笔记][keymap]
  9. 一些基础的.net用法
  10. .Net Errors