博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4828 - Grids (Catalan数)
阅读量:5265 次
发布时间:2019-06-14

本文共 996 字,大约阅读时间需要 3 分钟。

 

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4828

 

Catalan数的公式为 C[n+1] = C[n] * (4 * n + 2) / (n + 2)

题目要求对M = 1e9+7 取模

利用乘法逆元将原式中除以(n+2)取模变为对(n+2)逆元的乘法取模

C[n+1] = C[n] * (4 * n + 2) * Pow(n+2, MOD-2) % MOD

其中Pow用快速幂解决

#include 
#include
#include
#include
using namespace std;typedef long long LL;const int MAXN = 1e6+10;const int MOD = 1e9+7;LL C[MAXN];LL QuickPow(LL x, LL n){ LL ans = 1; while(n) { if(n & 1) ans = (ans * x) % MOD; x = (x * x) % MOD; n /= 2; } return ans;}void Pre(){ C[1] = 1; for(int i = 2; i <= MAXN; i++) { C[i] = C[i-1] * (4 * i - 2) % MOD * QuickPow(i + 1, MOD-2) % MOD; }}int main(){ Pre(); int t; int n; scanf("%d", &t); for(int cas = 1; cas <= t; cas++) { scanf("%d", &n); printf("Case #%d:\n%I64d\n", cas, C[n]); } return 0;}
View Code

 

转载于:https://www.cnblogs.com/Quinte/p/4969874.html

你可能感兴趣的文章
composer 报 zlib_decode(): data error
查看>>
linux下WPS的使用
查看>>
Web Api 利用 cors 实现跨域
查看>>
hdu 3938 并查集
查看>>
instanceof
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
C# GC 垃圾回收机制
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>