CSU1772-漫漫上学路-卡特兰数/递推
来源:互联网 发布:网络诋毁企业 编辑:程序博客网 时间:2024/05/16 08:25
F: 漫漫上学路
Description
对于csuxushu来说,能够在CSU(California State University)上学是他一生的荣幸。CSU校园内的道路设计的十分精巧,由n+1条水平道路和n+1条竖直道路等距交错而成,充分体现了校园深厚的文化底蕴。然而不幸的是CS市每到夏季,天降大雨,使得CSU常常形成“CS海”的奇观,今年,也就是2016年同样也不例外,校园有一半的区域被淹了。
由于要进行一年一度激动人心的省赛选拔了,起迟了的csuxushu赶紧从寝室背着一包模板前往机房,好奇的csuxushu发现虽然道路被淹了,但是只有左上三角区域受到影响,也就是说他可以在副对角线以下的道路畅通行走。在这个惊人的场景下,csuxushu做了一个惊人的决定,他要算出他有多少种前往机房的最短路线。然而只有10分钟了,这时候他想到了你——全CSU最厉害的程序员来帮助他解决这个问题。
需要指出的是CSU可以看做左下顶点为csuxushu的寝室(0,0),右上顶点为机房(n,n)的方形区域。
Input
多组数据。每组数据只有一行,为一个整数n(1 ≤n ≤30)。
Output
每组数据输出一行,即由寝室到机房的最短路线方案数。测试数据保证结果为64位整数。
Sample Input
4
Sample Output
14
Hint
14条最短路线如下
这个题目就是递推的入门题了
考虑它的解来说,它的每一个解都和前一个解来说是有关的
具体来说是这样的:
假如我们记一个ans[i][j]表示到坐标(i,j)的方案数,则ans[i][j]=ans[i][j-1](假如此坐标不合法则为0)+ans[i-1][j](假如此坐标不合法则为0)
AC代码:
#include <bits/stdc++.h>#define N 10100#define INF 0x3f3f3f3f#define LL long long#define mem(a,n) memset(a,n,sizeof(a))#define fread freopen("in.txt","r",stdin)#define fwrite freopen("out.txt","w",stdout)using namespace std;long long mp[31][31];int main(){ ios::sync_with_stdio(false); mp[0][0]=1; for(int i=1;i<31;++i){ for(int j=0;j<=i;++j){ if(!j){ mp[i][j]=mp[i-1][j]; }else if(i==j){ mp[i][j]=mp[i][j-1]; }else{ mp[i][j]=mp[i][j-1]+mp[i-1][j]; } } } int n; while(cin>>n){ cout<<mp[n][n]<<endl; } return 0;}
另外,这个数字正好是卡特兰数,有兴趣的自行百度吧,这个我还不太懂就不吹啦,所以另一种AC代码:
#include <iostream>using namespace std;LL ans[31];int main(){ ans[0]=1; for(int i=1;i<31;++i){ ans[i]=0; for(int j=0;j<i;++j){ ans[i]+=ans[j]*ans[i-j-1]; } } int n; while(cin>>n){ cout<<ans[n]<<endl; } return 0;}
- CSU1772-漫漫上学路-卡特兰数/递推
- CSUOJ 1772 漫漫上学路(卡特兰数 || 递推)
- csu 1772 漫漫上学路(卡特兰数)
- 卡特兰数的递推公式
- 卡特兰数的递推公式推导
- 卡特兰数已知递推序列求通项
- POJ 2084 Game of Connections 递推/卡特兰数
- NOIP 冲刺:常见的递推之卡特兰数
- HDU-3723 Delta Wave(卡特兰数+大数递推)
- 在HDU 1023上学到的卡特兰数
- Uva 10312 - Expression Bracketing 解题报告(卡特兰数+递推)
- uva 1478 - Delta Wave(递推+大数+卡特兰数+组合数学)
- hdu 1133 Buy the Ticket 卡特兰数+递推+java
- 【HDU】1267 - 下沙的沙子有几粒?(BigDecimal & 卡特兰数 & 递推 & 打表)
- SPOJ Make Triangle 卡特兰数,递推 1月25日
- 卡特兰数,高精度卡特兰数
- 卡特兰数
- 卡特兰数(Catalan)
- 《权限系列》----用redis存储HashMap
- CSU1001/1002/1683/1639/1524/1816/1888/1893/1202/1203/1212
- CSU1684-Disastrous Downtime-STL
- tcpdump抓的是哪一层的包?
- java数组api (off, len) 与 (begin, end)的问题
- CSU1772-漫漫上学路-卡特兰数/递推
- bzoj 1041: [HAOI2008]圆上的整点
- CSU1511-残缺的棋盘-模拟/BFS
- CSU1503-点到圆弧的距离-几何
- linux的多任务编程-线程池
- python列表的操作 01
- 如何用ipad或者iphone查看java源码
- Android Studio 整理
- 假设字符串为 A|B|C|D|E|F|G|H|aaa 处理后获取 A|B|,C|D|E|,F|G|H|,aaa