http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1320

题意:……是舀的时候里面必须要有1L,而不是舀完必须要有1L。

思路:才知道是卡特兰数。

这个感觉写的很好 http://www.cnblogs.com/wuyuegb2312/p/3016878.html

卡特兰数可以解决:求括号匹配,出栈入栈等组合个数的问题。

卡特兰数公式:
first O(n): h(n) = h(n-1) * (4*n-2) / (n+1)
second O(n^2): h(n) = h(0)*h(n-1) + h(1)*h(n-2) …… + h(n-1)*h(0)

third 直接算的公式:h(2n) = C(n, 2n) / (n+1)

第一种计算要用到逆元
逆元: 费马小定理
a^(m-1) ≡ 1(mod m)
a * a^(m-2) ≡ 1(mod m)
a^(m-2) ≡ (1/a)(mod m)

 #include <cstdio>
using namespace std;
typedef long long LL;
#define N 10010
#define MOD 1000000007
LL f[N];
/*
卡特兰数公式:
first O(n): h(n) = h(n-1) * (4*n-2) / (n+1)
second O(n^2): h(n) = h(0)*h(n-1) + h(1)*h(n-2) …… + h(n-1)*h(0)
逆元: 费马小定理
a^(m-1) ≡ 1(mod m)
a * a^(m-2) ≡ 1(mod m)
a^(m-2) ≡ (1/a)(mod m)
*/
LL q_pow(LL a, LL b) {
LL ans = ;
a %= MOD; b %= MOD;
while(b) {
if(b & ) ans = (ans * a) % MOD;
b >>= ;
a = (a * a) % MOD;
}
return ans;
}
// 快速乘(貌似鸡肋)
LL q_mul(LL a, LL b) {
LL ans = ;
a %= MOD;
while(b) {
if(b & ) {ans = (ans + a) % MOD; b--;}
b >>= ;
a = (a + a) % MOD;
}
return ans % MOD;
} void dabiao() {
f[] = f[] = 1LL;
for(int i = ; i <= ; i++) // first
f[i] = f[i-] * ( * i - ) % MOD * q_pow(i + , MOD - ) % MOD;
// for(int i = 2; i <= 10000; i++) second
// for(int j = 0; j < i; j++)
// f[i] = (f[i] + f[i-j-1] * f[j] % MOD) % MOD;
} int main() {
int n; dabiao();
while(~scanf("%d", &n)) printf("%lld\n", f[n] % MOD);
return ;
}

CSU 1320:Scoop water(卡特兰数)的更多相关文章

  1. Contest2037 - CSU Monthly 2013 Oct (problem B :Scoop water)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?cid=2037&pid=1 [题解]:卡特兰数取模 h(n) = h(n-1)*(4*n-2)/( ...

  2. csu 10月 月赛 B 题 Scoop water

    一个卡特兰数的应用: 卡特兰数主要有以下几个用途: 1.不同的出栈入栈数: 2.n个点组成的不同的二叉树的数目: 3.凸多边形的三角剖分划分: 4.括号化问题: 通项公式是:h(n) = C(2n-2 ...

  3. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  4. 卡特兰数(Catalan)

    卡特兰数又称卡塔兰数,英文名Catalan number,是组合数学中一个常出现在各种计数问题中出现的数列.由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名,其前几项为 : 1, 2, ...

  5. NOIP2003pj栈[卡特兰数]

    题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要性不言自明,任何 ...

  6. 卡特兰数 (Catalan)

    卡特兰数:(是一个在计数问题中出现的数列) 一般项公式: 1.         或       2.   递归公式: 1.  或 2. 注:全部可推导. (性质:Cn为奇数时,必然出现在奇数项 2k- ...

  7. HDU 5673 Robot ——(卡特兰数)

    先推荐一个关于卡特兰数的博客:http://blog.csdn.net/hackbuteer1/article/details/7450250. 卡特兰数一个应用就是,卡特兰数的第n项表示,现在进栈和 ...

  8. HDU 1023 Traning Problem (2) 高精度卡特兰数

    Train Problem II Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Sub ...

  9. HDU1130 卡特兰数

    How Many Trees? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

随机推荐

  1. debian9 安装 odoo11 笔记用 部分内容转载前辈的,在此感谢

    1先创建个odoo用户 sudo adduser odoo 2:给root 权限: sudo vi /etc/sudoers 修改文件参考如下: # User privilege specificat ...

  2. WPF 调用资源图片

    原文:WPF 调用资源图片 最近做的wpf项目中,在开发的时候,把图片放到了bin下面,采用了imagePath =System.IO.Directory.GetCurrentDirectory()+ ...

  3. C# HttpWebResponse下载限速

    在使用HttpWebResponse请求网络内容的时候,一般如下面这种方法: code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // 非生产环境代码,请在实际使用时进行 ...

  4. NPOI在无Office环境下,对Office文件的操作

    在做项目的时候,经常会遇到对 Office的操作,但有时候会没有Office环境,因此给大家介绍一个思路,在没有Office环境下,对Office的处理. NPOI,顾名思义,就是POI的.NET版本 ...

  5. WPF 简单的绕圈进度条(无cs代码)

    方案: 图标位置不变化的情况下设置透明度实现 代码: <Window x:Class="WpfApp1.MainWindow" xmlns="http://sche ...

  6. HTTP的请求方法一共有9种,有OPTIONS, HEAD, GET, POST等等(消息头有图,十分清楚)

    请求方法:指定了客户端想对指定的资源/服务器作何种操作 下面我们介绍HTTP/1.1中可用的请求方法: [GET:获取资源]     GET方法用来请求已被URI识别的资源.指定的资源经服务器端解析后 ...

  7. 汉的Unicode编码是6C49,而且通常都是小端存储。汉字的unicode范围是:0x4E00~0x9FA5,即CJK一共20928个字符。GBK有21886个汉字,所以多了958个汉字

    小端存储的结果是 49 6C UTF-8有点类似于Haffman编码,它将Unicode编码为:0x00-0x7F的字符,用单个字节来表示:0x80-0x7FF的字符用两个字节表示:0x800-0xF ...

  8. 改善C#程序的建议7:正确停止线程

    原文:改善C#程序的建议7:正确停止线程 开发者总尝试对自己的代码有更多的控制.“让那个还在工作的线程马上停止下来”就是诸多要求中的一种.然而事与愿违,这里面至少存在两个问题: 第一个问题是:正如线程 ...

  9. 邮件带附件和html格式

    1. 发送有附件的邮件需要添加一个附件类Attachment,这个附件可以为文件和图片: Attachment attach = new Attachment(“文件路径”");//文件 A ...

  10. UWP 双向绑定,在ListView中有个TextBox,怎么获取Text的值

    要求:评论宝贝的时候一个订单里面包含多个产品,获取对产品的评论内容哦 1. xaml界面 <ListView x:Name="lvDetail"> <ListVi ...