Untitled
unknown
plain_text
9 months ago
1.1 kB
0
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