题意:由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; }