Submission #826325
Source Code Expand
// In the name of God #include <iostream> #include <algorithm> #include <fstream> #include <vector> #include <deque> #include <assert.h> #include <queue> #include <stack> #include <set> #include <map> #include <stdio.h> #include <string.h> #include <utility> #include <math.h> #include <bitset> #include <iomanip> using namespace std; #define rep(i, n) for (int i = 0, _n = (int)(n); i < _n; ++i) #define int long long const int N = 2005, M = N * N, mod = (int) 1e9 + 7; int pw(int a, int b) { return b != 0? pw(a * a % mod, b >> 1) * (b & 1? a: 1) % mod: 1; } int ft[M], fi[M]; int dp[N][N]; int comb(int n, int r) { if (r < 0 || n < 0 || n - r < 0) return 0; return ft[n] * fi[r] % mod * fi[n - r] % mod; } void sadd(int &x, int y) { x += y; x %= mod; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ft[0] = fi[0] = 1; for (int i = 1; i < M; ++i) ft[i] = ft[i - 1] * i % mod; fi[M - 1] = pw(ft[M - 1], mod - 2); for (int i = M - 2; i >= 0; --i) fi[i] = fi[i + 1] * (i + 1) % mod; int n, k; cin >> n >> k; if (k == 1) { cout << 1 << endl; return 0; } /* if (k == 2) { cout << (mod + comb(n + n, n) - comb(n + n, n + 1)) % mod; return 0; } */ dp[0][0] = 1; for (int p1 = 0; p1 <= n; ++p1) for (int p0 = 0; p0 <= p1; ++p0) { if (p1) { int g = p0 * k + (p1 - p0 - 1) * (k - 1); sadd(dp[p1][p0], dp[p1 - 1][p0] * comb(g + 1 + k - 2 - 1, g) % mod); } if (p0) { sadd(dp[p1][p0], dp[p1][p0 - 1]); } } cout << dp[n][n] * ft[n] % mod << endl; }
Submission Info
Submission Time | |
---|---|
Task | F - Leftmost Ball |
User | Reyna |
Language | C++14 (GCC 5.4.1) |
Score | 1600 |
Code Size | 1785 Byte |
Status | AC |
Exec Time | 287 ms |
Memory | 85760 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1600 / 1600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 172 ms | 63104 KB |
0_01.txt | AC | 171 ms | 63104 KB |
0_02.txt | AC | 171 ms | 63104 KB |
0_03.txt | AC | 284 ms | 85760 KB |
1_00.txt | AC | 173 ms | 63104 KB |
1_01.txt | AC | 171 ms | 63104 KB |
1_02.txt | AC | 171 ms | 63104 KB |
1_03.txt | AC | 287 ms | 85760 KB |
1_04.txt | AC | 280 ms | 85120 KB |
1_05.txt | AC | 281 ms | 85632 KB |
1_06.txt | AC | 280 ms | 85248 KB |
1_07.txt | AC | 274 ms | 84352 KB |
1_08.txt | AC | 275 ms | 84480 KB |
1_09.txt | AC | 278 ms | 84608 KB |
1_10.txt | AC | 275 ms | 84480 KB |
1_11.txt | AC | 282 ms | 85248 KB |
1_12.txt | AC | 183 ms | 66304 KB |
1_13.txt | AC | 263 ms | 82304 KB |
1_14.txt | AC | 173 ms | 63616 KB |
1_15.txt | AC | 198 ms | 69504 KB |
1_16.txt | AC | 217 ms | 73472 KB |
1_17.txt | AC | 266 ms | 82816 KB |
1_18.txt | AC | 176 ms | 64768 KB |
1_19.txt | AC | 282 ms | 85504 KB |