[AHOI 2012]树屋阶梯
Description
以树屋高度为4尺、阶梯高度N=3尺为例,小龙一共有如图1.2所示的5种
搭 建方法:
Input
一个正整数 N(1≤N≤500),表示阶梯的高度
Output
一个正整数,表示搭建方法的个数。(注:搭建方法个数可能很大。)
Sample Input
Sample Output
HINT
1 ≤N≤500
题解
我们令$C_n$表示用$n$个长方形拼成$size$为$n$的三角梯形的方案数。
如题中的图,我们枚举最左下角的点属于哪个长方形。显然有$n$种可能,每种方法又把剩下的部分分成两个三角梯形($size$可能为$0$)。
显然我们得到
$$C_n = \sum _{i = 0} ^{n-1} C_i * C_{n-1-i}$$
其实就是$Catalan$的递推式,我们用通项公式求$C_n$即可。
1 //It is made by Awson on 2017.10.29 2 #include <set> 3 #include <map> 4 #include <cmath> 5 #include <ctime> 6 #include <stack> 7 #include <queue> 8 #include <vector> 9 #include <string> 10 #include <cstdio> 11 #include <cstdlib> 12 #include <cstring> 13 #include <iostream> 14 #include <algorithm> 15 #define LL long long 16 #define Min(a, b) ((a) < (b) ? (a) : (b)) 17 #define Max(a, b) ((a) > (b) ? (a) : (b)) 18 #define Abs(x) ((x) < 0 ? (-(x)) : (x)) 19 using namespace std; 20 const int N = 10005; 21 22 int n; 23 struct BIG_NUM { 24 int a[N+5], len; 25 BIG_NUM() { 26 } 27 BIG_NUM(int* _a, int _len) { 28 len = _len; 29 for (int i = 1; i <= _len; i++) a[i] = _a[i]; 30 } 31 BIG_NUM &operator *= (const int &b) { 32 for (int i = 1; i <= len; i++) a[i] *= b; 33 for (int i = 1; i <= len; i++) a[i+1] += a[i]/10, a[i] %= 10; 34 int loc = len+1; 35 while (a[loc]) { 36 a[loc+1] += a[loc]/10; a[loc] %= 10; loc++; 37 } 38 len = loc-1; 39 } 40 BIG_NUM &operator /= (const int &b) { 41 int r = 0, i; 42 BIG_NUM ans; 43 for (i = len; i >= 1; i--) { 44 r = r*10+a[i]; 45 if (r >= b) break; 46 } 47 ans.len = i; 48 for (i-- ; i >= 1; i--) { 49 ans.a[i+1] = r/b; r = r%b*10+a[i]; 50 } 51 ans.a[1] = r/b; 52 len = ans.len; for (int i = 1; i <= len; i++) a[i] = ans.a[i]; 53 } 54 void print() { 55 for (int i = len; i >= 1; i--) printf("%d", a[i]); 56 printf("\n"); 57 } 58 }A; 59 60 void work() { 61 scanf("%d", &n); 62 A.len = A.a[1] = 1; 63 for (int i = n+2; i <= (n<<1); i++) A *= i; 64 for (int i = 2; i <= n; i++) A /= i; 65 A.print(); 66 } 67 int main() { 68 work(); 69 return 0; 70 }
转载于:https://www.cnblogs.com/NaVi-Awson/p/7748308.html
[AHOI 2012]树屋阶梯相关推荐
- P2532 [AHOI2012]树屋阶梯
P2532 [AHOI2012]树屋阶梯 提交4.66k 通过1.79k 时间限制1.00s 内存限制125.00MB 提交答案加入题单 复制题目 题目提供者clearman 难度提高+/省选- 历史 ...
- [Catalan数三连]网格有趣的数列树屋阶梯
如何让孩子爱上打表 Catalan数 Catalan数是组合数学中一个常出现在各种计数问题中的数列. 以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名. 先丢个公式(设第n项为$ ...
- BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 779 Solved: 453 [Submit][Statu ...
- P2532 [AHOI2012]树屋阶梯($Catalan$数高精度)
P2532 [AHOI2012]树屋阶梯(Catalan数&高精度) 题目传送门 思路:卡特兰数的变形,可根据包含直角点的矩形覆盖的阶梯点的位置进行加法原理,然后对每个情况进行乘法原理,可以得 ...
- BZOJ2822 [AHOI2012]树屋阶梯
求卡特兰数,h[i]=C(2n,n)/(n+1) 1 #include<bits/stdc++.h> 2 using namespace std; 3 int v[1005],p[1005 ...
- bzoj2822 [AHOI2012]树屋阶梯 dp
容易得到一个结论:每一个块必须卡住一个角,不然一定是无法覆盖全的(一个矩形只能覆盖一个角) 所以就枚举多出来的矩形覆盖哪个角,剩下的方案数用以前算过的,类似插数dp 注:这个题竟然丧病的卡常,高精用的 ...
- 卡特兰数(简单说说)
参考题解: [算法]震惊!!!史上最详细的卡特兰数浅谈!!! 卡特兰数(好像很有用的说) 介绍 卡特兰数是组合数学中一种著名数列,其前几项为: 1, 2, 5, 14, 42, 132, 429, 1 ...
- 《信息学奥赛一本通提高篇》第6章 组合数学
例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...
- YBT 6 数学基础
$补+写题ing$ 第 1 章 快速幂 序列的第 k 个数 link $solution:$ 板子 A 的 B 次方 link $solution:$ 板子 [NOIP2013] 转圈游戏 link ...
- [杂谈] 14. Catalan卡特兰数
文章目录 1. 前言 2. 卡特兰数递推公式推导 3. 卡特兰数性质 4. 卡特兰数简单实例 实例1:进出栈问题 实例2:进出栈问题变种 实例三:电影购票问题 实例四:上班路径问题 实例五:乘法结合律 ...
最新文章
- 使用SSH上传部署WAR包到服务器
- mysql添加两种数据类型_MySQL入门(二) 数据库数据类型详解
- 【二叉树】【144. 二叉树的前序遍历】【中等】
- elasticsearch 根据条件去除重复值_Excel工作表中的条件格式,不只是查找重复值,还有7种典型用法...
- SparkSQL程序设计
- 使用git将本地仓库上传到远程仓库
- SourceTree 免注册
- js题集25--编程训练
- java 使用 lamba 表达式处理二维数组
- 微信刷投票软件手机版、微信免费刷票软件建立的原理解析
- 旭荣管理软件怎么修改小票内容_美萍超市管理软件——让管理回归轻松
- 车载高精度GNSS定位天线
- Vivado 错误代码 [DRC PDCN-2721] 解决
- 基于ThinkPHP6+Layui的后台管理框架
- python编程实例题目
- 计算机开机高级设置密码,给电脑设置开机密码
- Python——循环遍历多个列表实现字符的组合拼接
- Word和Excel齐发力,将多个单元格的文本内容合并到一个单元格
- 八皇后问题(Java代码实现)
- 简要分析“区块链+物联网”有哪些坎?
热门文章
- 生产环境中的PHP WEB 简单架构
- iOS中Lua脚本应用笔记一:脚本概念相关
- 前端图表生成利器--ECharts推荐
- action与jsp传值的几种方法
- 你必须知道:localStorage、sessionStorage 和 Cookie 区别在什么地方
- js获取数组中的最大值和最小值的方法汇总
- C++ 前向声明(转载)
- android 邮件发送html,如何发送HTML电子邮件
- 幻塔html5,《幻塔》捏脸系统怎么玩 捏脸系统玩法分享
- mysql所选路径已经存在_MySQL 入门知识(下) | 周末送资料