XidianOJ 1032 找规律Ⅱ

Posted TOTOTOTOTZZZZZ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XidianOJ 1032 找规律Ⅱ相关的知识,希望对你有一定的参考价值。

题目描述

现有数阵如下:
技术分享
求这个数阵的第n行m列是多少(行列标号从1开始)
结果对10007取模

 

输入

多组数据,每组数据一行,包含两个整数n,m(1<=n<=m<=10^18)

 

输出

每组数据输出一行,为数阵中第n行m列对10007取模后的值。

--正文

C(m,n) % p 

组合数取模问题

PS:找规律真是恶心

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

typedef long long LL;
LL n,m;
LL p = 10007;

LL quick_mod(LL a,LL b){
    LL ans = 1;
    a %= p;
    while (b){
        if (b & 1){
            ans = ans * a % p;
        }
        b >>= 1;
        a = a * a % p; 
    }
    return ans;
}

LL C(LL n,LL m){
    if (m > n) return 0;
    LL ans = 1;
    LL i;
    for (i=1;i<=m;i++){
        LL a = (n + i - m) % p;
        LL b = i % p;
        ans = ans * (a * quick_mod(b,p-2) % p) % p; 
    }
    return ans;
}

LL lucas(LL n,LL m){
    if (m == 0) return 1;
    return C(n % p,m % p) * lucas(n / p,m / p) % p;
} 
int main(){
    while (scanf("%lld %lld",&n,&m) != EOF){
        printf("%d\n",lucas(m,n));
    }
    return 0;
}

 

以上是关于XidianOJ 1032 找规律Ⅱ的主要内容,如果未能解决你的问题,请参考以下文章

XidianOJ 1055 如此遍历

XidianOJ 1146 万神的竞赛

XidianOJ 1195 Industry of Orz Pandas

JavaScript笔试题(js高级代码片段)

1032 Sharing

怎样办理DB2中呈现的SQL1032N错误现象