hdu 2067 dp Catalan数
来源:互联网 发布:windows 7虚拟机设置 编辑:程序博客网 时间:2024/06/05 05:02
Problem Description
小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧!
Input
每次输入一个数n(1<=n<=35),当n等于-1时结束输入。
Output
对于每个输入数据输出路径数,具体格式看Sample。
Sample Input
1
3
12
-1
Sample Output
1 1 2
2 3 10
3 12 416024
DP题解:
参考http://blog.sina.com.cn/s/blog_a16dd6d101014q6x.html
假设是8*8的矩阵
箭头方向表示从该格子下一步能去的格子。因为不能穿越对角线,所有对角线上的格子只有进去的箭头,没有出来的箭头。
不难推出状态转移方程
if(i==j)
dp[i][j]=dp[i][j-1]
else
dp[i][j]=dp[i-1][j]+dp[i][j-1]
我们只需要求对角线一半的路径数,因为它是关于对角线对称的,不难发现0列0行的路径数是1,注意初始化
代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;typedef long long LL;LL f[45][45];int main(){ for(int i=0;i<40;i++) f[i][0]=1; for(int i=0;i<40;i++) { for(int j=1;j<40;j++) { if(i==j) f[i][j]=f[i][j-1]; else f[i][j]=f[i][j-1]+f[i-1][j]; } } int n; int ks=1; while(cin>>n&&n!=-1) { //cout<<f[n][n]<<endl; printf("%d %d %lld\n",ks++,n,2*f[n][n]); } return 0;}
题解:
参考http://blog.csdn.net/hackbuteer1/article/details/7450250
此题属于卡特兰数列经典之一
代码:
#include<cstdio>using namespace std;int main(){ long long Cata[40]; Cata[0]=Cata[1]=1; for(int i=2;i<=35;i++){ for(int j=0;j<i;j++){ Cata[i] += Cata[j]*Cata[i-j-1]; } // printf("%lld\n",Cata[i]); } int kase=0,n; while(scanf("%d",&n)!=EOF && n>0){ printf("%d %d %lld\n",++kase,n,2*Cata[n]); } return 0;}
阅读全文
0 0
- hdu 2067 dp Catalan数
- hdu 2067 小兔的棋盘(Catalan数)
- hdu 1023 catalan数
- Catalan数 HDU 2067 HDU 1023 HDU 1131
- HDU 1023 Catalan数+高精度
- hdu 2067 小兔的棋盘(Catalan数)
- 【大数+DP】HDU 1133——Buy the tickets(不用catalan数了)
- 卡特兰数 Catalan数 hdu 1023
- hdu 5370 Tree Maker(catalan+dp)
- hdu 1023 Train Problem II(catalan数)
- hdu-1133,1131 依然Catalan数
- hdu 1023,catalan,卡特兰数
- hdu——1023(Catalan数)
- Catalan数-hdu-3723-Delta Wave
- hdu 1023 Train Problem II (catalan数)
- hdu 1133 Buy the Ticket(Catalan数)
- HDU 1133 Buy the ticket catalan 数
- HDU - 5673(catalan数的应用)
- (二)向模块添加组件,管道和服务
- 【简单快速】Win10系统下,安装NumPy函数库
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 解析(五)之更新SQL解析
- Spring-AOP 自动创建代理之AnnotationAwareAspectJAutoProxyCreator
- .NET中各种数据库连接大全
- hdu 2067 dp Catalan数
- 图解ARP协议(一)
- 使用cJSON解析JSON字符串
- lua面试题:热更新简介、原理及示例
- Codeforces 843B AIM Tech Round 4 (Div. 2) D:随机拼脸(注意rand()的范围)
- Lua 面试题目
- 欢迎使用CSDN-markdown编辑器
- 紫书8.2.2 快速排序
- C# 面试题