转载请标注转载自:http://blog.csdn.net/llwwlql/article/details/53129224

标准二维表问题

问题描述:

设n是一个正整数。2*n的标准二维表是由正整数1,2,…,2n组成的2*n数组,该数组的每行从左到右递增,每列从上到下递增。2*n的标准二维表全体记为tab(n)。例如,当n=3时,tab(3)二维表如下图所示。

1

2

3

4

5

6

1

2

4

3

5

6

1

2

5

3

4

6

1

3

4

2

5

6

1

3

5

2

4

6

编程任务:

给定正整数n,试计算tab(n)中2*n二维表的个数。

分析:

1、先把2*n个数字排成一行来看(1~2*n 有序)。放到第一行的数字标记为0,放到第二行的数字标记为1,这样就可以有一个01的序列,题目要求前面的数字比后面和下面的数字小,这样可以转换为,序列前面每个数字前面0的个数要大于等于1的个数。

2、把该问题转换成进栈出栈的问题。n个数字,进栈是0,出栈是1,这样可以保证输出的进栈出栈序列前面0的个数大于等于1的个数,符合题目要求前面的数字比后面和下面的数字小,即一定能保证每个数字序列前面0的个数要大于等于1的个数。

又因为栈的出栈进栈次序所组成的排列是卡特兰数,所以这个题可以转换成求卡特兰数来做。

我这里只是简单的算了一下卡特兰数,没有计算大数的情况,根据递推公式打表就可算出。大数的卡特兰数我博客的其他文章:大卡特兰数

代码如下:

#include <stdio.h>
unsigned long long c[25];
void init()
{int i,j;c[1]=1;for(i=2;i<=20;i++)c[i]=c[i-1]*(4*i-2)/(i+1);
}
int main()
{int n;init();while(~scanf("%d",&n)){printf("%I64d\n",c[n]);}return 0;
}

标准二维表问题 (卡特兰数)相关推荐

  1. 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...

    度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...

  2. 2017百度之星资格赛:1005. 寻找母串(卡特兰数+分块打表)

    寻找母串  Accepts: 105  Submissions: 887  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 32768/32 ...

  3. [BZOJ4001] [TJOI2015] 概率论 [期望计数] [卡特兰数打表 / 生成函数广义二项式定理]

    [Link\frak{Link}Link] 预备结论们 卡特兰数 Cn=(2nn)−(2nn±1)C_n={2n\choose n}-{2n\choose n\pm1}Cn​=(n2n​)−(n±12 ...

  4. 关于卡特兰数及典型例题

    关于卡特兰数: f[0] = 1, f[1] = 1; for(int i = 2; i <= n; i++)for(int j = 0; j < i; j++)f[i] += f[j] ...

  5. 洛谷 P1044 栈 [卡特兰数]

    题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即 poppop (从栈顶弹出一个元素)和 pushpush (将一个元素进栈). 栈 ...

  6. hdu 1134 卡特兰数(大数模板)

    卡特兰数 递推公式: C(n)=C(2n,n)/(n+1)  即用数组表示为c[i]=c[i-1]*(4*i-2)/(i+1); 一般形式 直接 表达 c[1]=1; for(i=2;i<40; ...

  7. 卡特兰数(c++实现)

    卡特兰数 (从第0项开始)1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 969484 ...

  8. Catalan卡特兰数

    卡特兰数是组合数学中一个常出现在各种计数问题中的数列,其前几项为(从第零项开始) : 1, 1, 2, 5, 14, 42- 计算卡特兰数的通项公式:h(n)=C(2n,n)/(n+1) 卡特兰数的应 ...

  9. 【算法专题】卡特兰数

    卡特兰数 1. 概述 卡特兰数:首先这个一个数,很多问题的结果都是卡特兰数,比如2016年全国三卷数学选择题压轴题让求解的就是卡特兰数,问题如下: 首先是结论:卡特兰数为: C 2 n n n + 1 ...

  10. 阿里云天池超级码力在线编程大赛初赛 第2场 ABCD(A.计算几何 判断点在三角形内 D.大施罗德数/超级卡特兰数)

    心得 打了一下被群友吐槽的比赛,阅读体验极差 阴间题面,读题1小时,AC5min,原题警告 思路来源 https://blog.csdn.net/PleasantlY1/article/details ...

最新文章

  1. mysql sqlserver对比_很用心的写了 9 道 MySQL 面试题
  2. 字符串阵列分别输出元素的索引,原值和长度
  3. LD_DEUBG 调试动态库加载
  4. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——工具类
  5. 单页vue路由router
  6. 训练日志 2018.12.2
  7. spring4.0基于Java配置_Spring MVC学习笔记之Controller查找(基于Spring4.0.3)
  8. lisp如何批量选中特定图层_图层管理的奥秘
  9. PHP如何实现百万级数据导出
  10. 几万字的博文,你自己会看吗
  11. python 爬取直播_Python爬取直播视频
  12. 几款实用的前端日历时间日期选择控件
  13. SD卡、记忆棒等内存卡的数据恢复方法
  14. 协作乐高 All In One:DAO工具大全
  15. Pandas做数据空缺值填充
  16. HTML5 新增的结构元素——能用不代表用对了
  17. 大数据学习笔记1.3 Linux目录操作
  18. 如何通过引用传递变量?
  19. DOTA2是暴雪的吗
  20. 怎么写计算机教学论文,计算机基础教学论文摘要怎么写 计算机基础教学论文摘要范文参考...

热门文章

  1. python程序设计语言中的小于等于号_Python(matplotlib)小于或等于tex中的符号
  2. 程序员为什么要会用Google谷歌搜索引擎
  3. android文字立体,3d立体字转换器
  4. 苹果14手机怎么投屏到mac电脑上面?
  5. 基于文本检测模型检测文本框对图像进行旋转校正
  6. CentOS7 部署 RAID 磁盘阵列
  7. 快乐牛牛终极板creator1.82 shader 挫牌代码
  8. 案例集|不仅仅是酒店,还有更多可能——高星级酒店的跨界营销
  9. 【供应链架构day7】美团供应链的架构之道:O2O关键战场在供给端
  10. atlas 1.1.0 的本地开发文档(编译)