题目:

http://acm.hdu.edu.cn/showproblem.php?pid=5673

好久没打BC,当时这场过了3题,hack了一个,马马虎虎吧,因为前三个题确实不难。

这个是那场的第四个题,其实难度不大。结果是ΣC(n,2i)*catalan[i],C(n,2i)好理解。

卡特兰数吗。。。。其实也不太负责,因为卡特兰数经常用在括号匹配啊啥的情况。。。参见这个吧。。

http://blog.csdn.net/hongchangfirst/article/details/8766529

http://blog.chinaunix.net/uid-26456800-id-3462158.html

当然,这题数据量比较大,建议用递推公式,涉及到求逆元,费马小定理+快速幂可以。

几个递推:Catalan[i] = ((4*i-2)/(i+1))*Catalan[i-1] ,      C(n, i) = ((n-i+1)/i)*C(n, i-1)。

至于网上人用的这个线性的。。。。inv[i]=(mod-mod/i)*inv[mod%i]%mod;。。。还没研究明白。。

代码:

 #include <bits/stdc++.h>

 using namespace std;
const int maxn = + ;
typedef long long int64;
const int64 mod = + ; int64 inv[maxn];
int64 catalan[maxn], c[maxn]; int64 fpow( int x, int64 p ){
//cout << x << " " << p << endl;
int64 ans = , sum = x;
while(p){
if(p&)
ans = (ans * sum)%mod;
sum = (sum * sum)%mod;
p >>= ;
} return ans;
} void Init(void){
inv[] = ;
for( int i = ; i < maxn; ++i ){
//inv[i]=(mod-mod/i)*inv[mod%i]%mod;
inv[i] = fpow(i, mod-);
} catalan[] = catalan[] = ;
for( int i = ; i < maxn; ++i ){
int a = *i-, b = i+;
catalan[i] = catalan[i-]*a%mod*inv[b]%mod;
}
//cout << catalan[3] << " " << catalan[4] << " " << catalan[5] << endl;
} void solve(int n){
int64 ans = ; c[] = ;
for( int i = ; i <= n; ++i ){
c[i] = (n-i+)*c[i-]%mod*inv[i]%mod;
} for( int i = ; i* <= n; ++i ){
ans = (ans + c[*i]*catalan[i]%mod)%mod;
}
printf("%I64d\n", ans);
} int main(void){
int T;
scanf("%d", &T);
Init(); while(T--){
int n;
scanf("%d", &n); solve(n);
} return ;
}

hdu5673-Robot的更多相关文章

  1. hdu5673 Robot 卡特兰数+组合数学+线性筛逆元

    Robot Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  2. hdu-5673 Robot(默次金数)

    题目链接: Robot Time Limit: 12000/6000 MS (Java/Others)  Memory Limit: 65536/65536 K (Java/Others) 问题描述 ...

  3. HDU5673 Robot 默慈金数

    分析: 注:然后学了一发线性筛逆元的姿势 链接:http://blog.miskcoo.com/2014/09/linear-find-all-invert #include<iostream& ...

  4. hdu5673 Robot 卡特兰数 / 默慈金数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5673 分析: 这道题是一道裸的默慈金数,比较容易想到的是用卡特兰数来做.不了解的可以先学习一下. 卡特 ...

  5. Robot(hdu5673)

    Robot Accepts: 92 Submissions: 188 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 ...

  6. Robot Framework用户手册 (版本:3.0)

    版权信息:诺基亚网络和解决中心 本翻译尊重原协议,仅用于个人学习使用 1.开始: 1.1 介绍: Robot Framework是一个基于Python的,为终端测试和验收驱动开发(ATDD)的可扩展的 ...

  7. selenium webdriver 右键另存为下载文件(结合robot and autoIt)

    首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...

  8. RIDE -- Robot Framework setup

    RobotFramework 是一款基于python 的可以实现关键字驱动和数据驱动并能够生成比较漂亮的测试报告的一款测试框架 这里使用的环境是 python-2.7.10.amd64.msi RID ...

  9. [8.2] Robot in a Grid

    Imagine a robot sitting on the upper left corner of grid with r rows and c columns. The robot can on ...

  10. Robot Framework自动化测试 ---视频与教程免费分享

    当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以 ...

随机推荐

  1. postfix 邮件中继配置

    Postfix 配置邮件中继 A 邮件发送服务器B 邮件中继服务器 A. 配置发件服务器 # 开启转发规则 [root@Postfix ~]# vi /etc/postfix/main.cf tran ...

  2. Sybase_ASA 字符串拼接

    列转行并拼接字符串,使用LIST函数 SELECT LIST(T.NAME,',') FROM TAB_DEMO T;

  3. .net 内嵌 GeckoWebBrowser (firefox) 核心浏览器

    引用nuget包: 注意:Geckofx45 nuget包必须是最后引用,否则初始化会出错 简单示例: using Gecko; using System; using System.Collecti ...

  4. css流光效果

    css流光效果1: <!DOCTYPE html> <html> <head> <title>ww</title> </head> ...

  5. CentOS6.9下NFS配置说明(转载)

    NFS是Network File System的缩写,即网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端可以通过挂载(mount)的方式将NFS ...

  6. iOS标准库中常用数据结构和算法之查找

    参数: key: [in] 要查找的元素.base:[in] 数组元素的首地址.nelp: [in/out] 数组的元素个数指针.width: [in] 数组中每个元素的尺寸.compar: [in] ...

  7. CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd)

    CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd) Chosing between Chrony and N ...

  8. 跟着alex学习了格式化输出,最大的感受就是编程这个事,一定要自己动手去做,才能学会。看会和自己会做完全是两码事

    学习了三天,现在学到格式化输出.看视频教程,alex和那个美女学员打情骂俏,真是羡慕啊. 教程看懂很容易,完全会了. 可是上手编程马上歇菜. 就这么几行的代码,我遇到了n多错误 首先是中文输入的错误, ...

  9. Nginx反向代理WebSocket(WSS)

    1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...

  10. Sessions共享技术设计

    概述 分布式session是实现分布式部署的前提, 当前项目由于历史原因未实现分布式session, 但是由于在kubernets中部署多个pod时, 负载均衡的调用链太长, 导致会话不能保持, 所以 ...