CF1628D1
【题目链接】
题解思路:
我们把
定义
另外当
得
至此,我们可以
AC Code:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
const int Maxn = 2010;
const int N = 2000;
const int mod = 1e9 + 7;
int f[Maxn][Maxn];
ll power (ll a , ll x) {
ll r = 1;
a %= mod;
while (x) {
if (x & 1) r = r * a % mod;
a = a * a % mod;
x >>= 1;
}
return r;
}
ll inv (ll a) {
return power (a , mod - 2);
}
void solve () {
ll n , m , k;
cin >> n >> m >> k;
cout << f[m][n] * k % mod << endl;
}
int main() {
ll i2 = inv (2);
for (int i = 1; i <= N; ++ i) {
f[i][i] = i;
for (int j = i + 1; j <= N; ++ j)
f[i][j] = (f[i][j - 1] + f[i - 1][j - 1]) % mod * i2 % mod;
}
int T;
cin >> T;
while (T --) {
solve ();
}
return 0;
}