Untitled
unknown
plain_text
a year ago
1.1 kB
8
Indexable
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define endl "\n"
const double PI = 3.14159265358979;
const ll INF = 1e9 + 7;
const ll MOD = 1e9 + 7;
const ll nax = 100005;
const int LOG = 25;
class Solver {
int n, m, k;
vector<vector<int> > dp;
int numberOfWays(int i, int k) {
if (i > n) {
return k == 0;
}
if (k < 0) {
return 0;
}
if (dp[i][k] != -1) {
return dp[i][k];
}
int ans = numberOfWays(i + 1, k);
ans = (ans + 1LL * (m - 1) * numberOfWays(i + 1, k - 1)) % MOD;
return dp[i][k] = ans;
}
public:
void solve() {
cin >> n >> m >> k;
dp.assign(n + 1, vector<int> (k + 1, -1));
cout << ((1LL * m * numberOfWays(2, k)) % MOD) << endl;
}
};
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t = 1;
cin >> t;
while(t--) {
Solver solver;
solver.solve();
}
return 0;
}Editor is loading...
Leave a Comment