A Boring Question (打表)

  题意:由m个0到n组合的数的相邻两项的组合数的乘积。

  思路:好好打表!!!找规律!!!

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

const int maxn = 1e3 + 7;
const int maxm = 1e6 + 7;
const int mod  = 1e9 + 7;

ll mypow(ll a, ll p, ll mo){
    ll ret = 1;
    while(p){
        if(p & 1) ret = ret * a % mod;
        a = a * a % mo;
        p >>= 1;
    }
    return ret;
}

int main(){
    ll n, m;
    int T;scanf("%d", &T);
    for(int ncase = 1; ncase <= T; ncase ++){
        scanf("%lld%lld", &n, &m);
        ll ans = (mypow(m, n + 1, mod) - 1 + mod ) % mod;
        ans = ans * mypow(m - 1, mod - 2, mod) % mod;
        printf("%lld
", ans);
    }
    return 0;
}
more crazy more get!
原文地址:https://www.cnblogs.com/wethura/p/9919255.html