博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51Nod 1120 - 机器人走方格 V3(Lucas定理+Catalan数)
阅读量:4568 次
发布时间:2019-06-08

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

题目链接

【题目描述】

N * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。

Input

输入一个数N(2 <= N <= 10^9)。
Output
输出走法的数量 Mod 10007。

Input示例

4
Output示例
10

【思路】

卡特兰数,模数比较小用Lucas定理

#include
using namespace std;typedef long long ll;const int maxn=10010;const int mod=10007;ll pw(ll x,ll n){ ll ans=1; while(n){ if(n&1) ans=ans*x%mod; x=x*x%mod; n>>=1; } return ans;}ll inv(ll a){return pw(a,mod-2);}ll fac[maxn];ll invfac[maxn];void init(){ fac[0]=1; invfac[0]=1; for(int i=1;i
n) return 0LL; ll ans=1LL; for(;m;n/=mod,m/=mod) ans=ans*C(n%mod,m%mod)%mod; return ans;}ll Cat(int n){ return ((Lucas(2*n,n)-Lucas(2*n,n-1))%mod+mod)%mod;}int main(){ init(); int n; scanf("%d",&n); printf("%lld\n",2LL*Cat(n-1)%mod); return 0;}

转载于:https://www.cnblogs.com/wafish/p/10465139.html

你可能感兴趣的文章
联想笔记本那些有手写功能_联想小新2021版笔记本正式发布,依然还是买新不买旧么?并不!...
查看>>
最强蜗牛击败毁灭机器人_黑色幽默才是王道 解读奇葩游戏最强蜗牛
查看>>
初中数学分几个模块_初中数学考试|8大模块,59个必考易错知识点大集合,附初中数学10大专题知识精讲...
查看>>
存储心跳线作用_汽车涂胶线新型吊具输送设备的应用
查看>>
命名时取代基优先顺序_浅谈有机化合物的英文命名(七)
查看>>
开启弹窗_弹窗广告总跳出来?学会这3种方法手机电脑再也不怕被打扰
查看>>
matlab 功率谱密度 汉宁窗_时域和频域特征提取Matlab编程实例
查看>>
centos7 mysql命令_Centos7中mysql安装以及命令
查看>>
mysql8创建不了用户_mysql8创建用户
查看>>
mysql数据库 q_mySQL数据库 - osc_q4xkkmlj的个人空间 - OSCHINA - 中文开源技术交流社区...
查看>>
mysql yum 卸载命令_Linux下MySQL5.7.18 yum方式从卸载到安装
查看>>
mysql use procedure bodies_Debug core file with no symbols
查看>>
debian安vs_如何在Debian 10 Linux上安装和使用Docker
查看>>
jdbc mysql 5.05_JDBC 连接 MySQL 时碰到的小坑
查看>>
rancher部署mysql怎么挂在卷轴_Rancher部署mysql8
查看>>
java_home没有定义_“错误:JAVA_HOME没有正确定义.”在构建Jikes rvm
查看>>
python canvas画移动物体_tkinter – 用于画布对象python的动画移动的方法
查看>>
java 连接 rac_JAVA 连接 ORACLE RAC 字符串
查看>>
java面试题 网络编程_java面试题《三、网络编程》
查看>>
java布尔矩阵程序_Java编程学习摘要(2)语法基础
查看>>