当前位置: 首页 > news >正文

01序列 卡特兰数

 解法:

将01序列置于坐标轴上,起始点为原点。0表示向右走,1表示向上走。这样就可以将前缀0的个数不少于1的个数就可以转换为路径上的点,横坐标大于纵坐标,也就是求合法路径个数。

注意题目mod的数是质数,所以可以使用快速幂求逆元,若不是质数,则需要使用扩展欧几里得算法求逆元。 

快速幂:

//01序列 卡特兰数
#include<iostream>
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;//因为mod的数是质数可以用快速幂
//如果不是质数就用扩展欧几里得
ll qmi(ll a, ll k, ll p)
{ll res = 1;while (k){if (k & 1) res = res * a % p;a = a * a % p;k >>= 1;}return res;
}
//答案为C2n n /n + 1
int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);ll n; cin >> n;ll a = 2 * n, b = n, res = 1;for (ll i = a; i > a - b; --i) res = res * i % mod;for (ll i = 1; i <= b; ++i) res = res * qmi(i, mod - 2, mod) % mod;res = res * qmi(n + 1, mod - 2, mod) % mod;cout << res;return 0;
}

扩展欧几里得:

//01序列 扩展欧几里得
#include<iostream>
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;ll exgcd(ll a, ll b, ll& x, ll& y)
{if (!b){x = 1, y = 0;return a;}ll d = exgcd(b, a % b, y, x);y -= a / b * x % mod;return d;
}int main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);ll n, x, y; cin >> n;ll a = 2 * n, b = n;ll res = 1;for (ll i = a; i > a - b; --i) res = res * i % mod;for (ll i = 1; i <= b; ++i){exgcd(i, mod, x, y);res = res * x % mod;}exgcd(n + 1, mod, x, y);res = (res * x % mod + mod) % mod;cout << res;return 0;
}

 

 

 

http://www.lryc.cn/news/231686.html

相关文章:

  • java实现快速排序
  • 【Spring Boot】034-Spring Boot 整合 JUnit
  • 基于安卓android微信小程序的师生答疑交流平app
  • 开发一个接口,需要考虑什么
  • 【owt】owt-p2p的vs工程构建
  • uniapp系列
  • AWS实战(一)-创建S3 存储桶
  • Java实现简单的俄罗斯方块游戏
  • 深度学习+opencv+python实现车道线检测 - 自动驾驶 计算机竞赛
  • 人工智能 :一种现代的方法 第七章 逻辑智能体
  • 从座舱到行泊一体,亿咖通科技做对了什么?
  • BMC Helix解决方案落地亚马逊云科技中国区域,同时上线Marketplace
  • 第14章 多线程二 (线程调度)
  • Spring Cloud GateWay简介
  • 耿明雨出席柬方70周年招待会晚宴
  • 退役记 + 秋招总结,占坑
  • 网络类型及数据链路层的协议
  • ROC 曲线:健康背景下的应用和解释
  • SpringBoot + Disruptor 实现特快高并发处理,使用Disruptor高速实现队列
  • git push origin HEAD:refs/for/master
  • S25FL256S介绍及FPGA实现思路
  • 淘宝客APP源码/社交电商自营商城源码/前端基于Uniapp开发
  • Oracle 服务器日常巡检
  • 【轨道机器人】实现Windows与下位机串口通信(未完成)
  • 无人机内存卡数据恢复
  • 基于SSM的校园二手物品交易市场设计与实现
  • Android14 Beta 5
  • 力扣labuladong——一刷day32
  • Day01_《MySQL索引与性能优化》摘要
  • BMS系统项目