【2-10】标准 2 维表问题
时间:2019-10-09
本文章向大家介绍【2-10】标准 2 维表问题,主要包括【2-10】标准 2 维表问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述:
设 n 是一个正整数。2´n 的标准 2 维表是由正整数 1,2,…,2n 组成的 2´n 数组,该
数组的每行从左到右递增,每列从上到下递增。2´n 的标准 2 维表全体记为 Tab(n)。例如,
当 n=3 时 Tab(3)如下:
1 2 3 1 2 4 1 2 5 1 3 4 1 3 5
4 5 6 3 5 6 3 4 6 2 5 6 2 4 6
´编程任务:
给定正整数 n,计算 Tab(n)中 2´n 的标准 2 维表的个数。
´数据输入:
由文件 input.txt 给出输入数据。第一行有 1 个正整数 n。
´结果输出:
将计算出的 Tab(n)中 2´n 的标准 2 维表的个数输出到文件 output.txt。
输入文件示例 输出文件示例
input.txt output.txt
3 5
【题解】
把数字1..2*n填到这个二维表中。
按顺序从1开始填(然后从左到右填,这样的话从左到右就是不下降的了)
假设当前要填的数字是i
如果把一个数字入栈,则把i填到第一行最左边的空缺处。
如果把一个数字出栈,则把i填到第二行最左边的空缺处。
这样的话,出栈的时候,就把数字填到第二行最左边的空缺处。
然后看看这个数字所在的列,对应的第一行有没有数字(如果有肯定比它小)
如果没有的话,就说明这不是一个合法的入栈出栈序列。
答案就呼之欲出了。
->出栈序列的个数
->卡特兰数
通项公式是C(2n,n)/(n+1)
【代码】
#include <cstdio>
using namespace std;
const int N = 15;
int n;
long long f[N+10];
int main(){
f[0] = 1;
for (int i = 1;i <= N;i++) f[i] = f[i-1]*i;
while(~scanf("%d",&n)){
long long temp1 = f[2*n];
long long temp2 = f[n+1]*f[n];
printf("%I64d\n",temp1/temp2);
}
return 0;
}
原文地址:https://www.cnblogs.com/AWCXV/p/11640376.html
- 机器学习虾扯淡之Logistic回归No.44
- 大数据计数原理1+0=1这你都不会算(一)No.47
- 机器学习虾扯蛋之SVD奇异值分解No.48
- 提高Spark姿势水平 No.73
- 好好玩的螺旋算法No.69
- linux学习第四十篇:访问日志不记录静态文件,访问日志切割,静态元素过期时间
- linux学习第四十一篇:配置防盗链,访问控制Directory,访问控制FilesMatch
- linux学习第四十二篇:限定某个目录禁止解析php, 限制user_agent,PHP相关配置
- 简易但不简单的配置中心No.79
- linux学习第四十三篇:LNMP架构介绍,mysql安装,php安装,Nginx介绍
- linux学习第四十四篇:Nginx安装,Nginx默认虚拟主机,Nginx域名重定向
- linux学习第四十二篇:PHP扩展模块安装
- linux学习第四十五篇:Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间
- 合格的配置中心应有的素养No.76
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解PHP 二维数组排序保持键名不变
- 详解PHP的抽象类和抽象方法以及接口总结
- keras的ImageDataGenerator和flow()的用法说明
- python 识别登录验证码图片功能的实现代码(完整代码)
- Laravel事件监听器用法实例分析
- iOS 性能优化实践:头条抖音如何实现 OOM 崩溃率下降50%+
- PHP join()函数用法与实例讲解
- Laravel框架实现的使用smtp发送邮件功能示例
- 浅谈PHP无限极分类原理
- 浅谈PHP各环境下的伪静态配置
- 浅谈php的TS和NTS的区别
- 详解用Python调用百度地图正/逆地理编码API
- python如何使用代码运行助手
- keras topN显示,自编写代码案例
- PHP实现的杨辉三角求解算法分析