1120 机器人走方格 V3
来源:互联网 发布:金尚网上商城项目源码 编辑:程序博客网 时间:2024/04/30 10:32
1120 机器人走方格 V3
基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题
N * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。
Input
输入一个数N(2 <= N <= 10^9)。
Output
输出走法的数量 Mod 10007。
Input示例
4
Output示例
10
卢卡斯…..依旧用卢卡斯
推导结果是卡特兰数,最后在对应项乘一个2就OK了。
#include<stdio.h>#include<math.h>#include<algorithm>using namespace std;#define ll long long#define mod 10007ll f[mod];ll quickm(ll m,ll n){ ll b=1; while(n) { if(n&1) b=b*m%mod; n=n>>1; m=m*m%mod; } return b;}ll Lucas(ll n,ll m){ ll ret=1; while(n&&m){ ll a=n%mod,b=m%mod; if(a<b) return 0; ret=(ret*f[a]*quickm(f[b]*f[a-b]%mod,mod-2))%mod; n/=mod; m/=mod; } return ret;}int main(){ ll n; f[0]=1; for(int i=1;i<mod;i++){ f[i]=f[i-1]*i%mod; } //while(~scanf("%lld",&n)!=EOF){ scanf("%lld",&n); n--; printf("%lld\n",(ll)Lucas(2*n,n)*quickm(n+1,mod-2)*2%mod);// } return 0;}
0 0
- 1120 机器人走方格 V3
- 1120 机器人走方格 V3
- 51nod 1120 机器人走方格v3
- 51nod 1120 机器人走方格 V3
- 【51 Nod】 1120 机器人走方格 V3
- 51Nod-1120-机器人走方格 V3
- [51nod-1120]机器人走方格V3 题解
- 【51Nod1120】机器人走方格 V3
- 【51Nod1120】机器人走方格 V3
- 51NOD 1120 机器人走方格 V3(卢卡斯定理 + 非降路径)
- 51nod 1120 机器人走方格 V3(卡特兰数,lucas定理)
- 51nod 1120 机器人走方格V3 卡特兰数+卢卡斯定理
- 51nod 1120 机器人走方格 V3 lucas+卡特兰+逆原 好题
- 51nod 1120 机器人走方格V3【卡特兰数】【卢卡斯定理】
- 51nod 1120 机器人走方格V3(组合数学+卡特兰数+Lucas)
- 机器人走方格I
- 机器人走方格
- 机器人走方格I
- 【Android】只为更方便--RecyclerView的使用(一)
- Java之Scanner(二)
- Oracle的使用经验
- 初识JavaScript
- EnumMap类源码解析
- 1120 机器人走方格 V3
- fwrite函数的用法
- shuffle
- CTF万里追踪——图片里的秘密
- jQuery初认识
- 8086汇编语言 为什么AX,BX,CX,DX寄存器可以分为双八位独立寄存器
- 拓展最小公倍数
- 笔记:vs使用cmake自动添加opencv和boost(MFC使用cmake建立工程)
- Intent-filter属性详解