CSU 1320 Scoop water【卡特兰数】
来源:互联网 发布:shell 数组函数 编辑:程序博客网 时间:2024/05/17 04:01
1320: Scoop water
Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 912 Solved: 269
[Submit][Status]
Description
zzy今天刚买了两个水瓢A和B,容量都是为1升,童心未泯的他打算用这个水瓢来玩游戏。
首先zzy准备了一个容量可看作无穷大的水缸,刚开始水缸是空的,然后用水瓢A往水缸里加水,用水瓢B把水缸里的水舀出去,当使用 水瓢B把水舀出去时水缸里必须要至少有1升的水。这样子使用N次水瓢A,也使用N次水瓢B,最后水缸会依旧空的。
Input
输入有多个例子,直到文件结束。
每个例子仅含一个数N(0<N<=10000),表示你必须使用N次A水瓢和N次B水瓢。
Output
对于每个例子,请输出一个数,表示一共有多少种正确的舀水方式使得舀水过程中 使用B水瓢时水缸里总会有足够的水。
(由于数字比较大,输出的答案模1000000007)
Sample Input
12
Sample Output
12
HINT
CSU_CX
Source
CSU Monthly 2013 Oct.
思路:
一个入的水舀,一个出的水舀,相当于出栈和入栈的顺序。
经典的卡特兰数问题。
因为N并不大,所以我们可以O(N^2)预处理出来结果。
O(1)查询即可。
Ac代码:
#include<stdio.h>#include<string.h>using namespace std;#define ll long long int #define mod 1000000007ll dp[10005];void init(){ dp[0]=1; for(int i=1;i<=10000;i++) { for(int j=0;j<i;j++) { dp[i]+=dp[j]*dp[i-j-1]; dp[i]%=mod; } }}int main(){ init(); int n; while(~scanf("%d",&n)) { printf("%lld\n",dp[n]); }}
0 0
- CSU 1320 Scoop water【卡特兰数】
- 数学 ( 卡特兰数 )——Scoop water ( CSU 1320 )
- CSU 1320 盛水(卡特兰数)
- csu 1950: 谈笑风生 卡特兰数
- csu 1772 漫漫上学路(卡特兰数)
- 卡特兰数,高精度卡特兰数
- Scoop Water
- 卡特兰数
- 卡特兰数(Catalan)
- 卡特兰数
- 卡特兰数
- 卡特兰数 大数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- 卡特兰数
- SAN中虚拟化存储部署面临的挑战
- try--catch
- 洛谷 P1443 马的遍历
- zeus任务调度系统搭建
- 2016年12月问题记录与总结--PCIE调试心得
- CSU 1320 Scoop water【卡特兰数】
- wed 前端开发 定位
- 程序员面试金典——解题总结: 9.18高难度题 18.7给定一组单词,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成。
- NFC标签的读写
- 简约至上-读书笔记
- Oracle 的constraint写法
- jQuery.extend 函数使用详解
- 录音转换Mp3-Lame4Android 下篇
- 常见c语言编译错误解析