Submission #47834810
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int P = 1000000007;
int poww(int a, int b) {
int r = 1;
for (; b; b >>= 1, a = 1ll * a * a % P) if (b & 1) r = 1ll * r * a % P;
return r;
}
int n, a, b, c, d;
int f[1005][1005]; // 人数为 i 的组,用了 j 人
int g[1005][1005];
int fac[1005], ifac[1005];
inline int C(int n, int m) {
if (n < m) return 0;
return 1ll * fac[n] * ifac[m] % P * ifac[n - m] % P;
}
int main(void) {
cin >> n >> a >> b >> c >> d;
for (int i = fac[0] = 1; i <= n; ++i) fac[i] = 1ll * fac[i - 1] * i % P;
ifac[n] = poww(fac[n], P - 2);
for (int i = n - 1; i >= 0; --i) ifac[i] = 1ll * ifac[i + 1] * (i + 1) % P;
for (int i = 1; i <= n; ++i) {
g[i][0] = 1;
for (int k = 1; k <= n; ++k)
g[i][k] = 1ll * g[i][k - 1] * C(k * i, i) % P;
}
f[a - 1][0] = 1;
for (int i = a; i <= b; ++i)
for (int j = 0; j <= n; ++j) {
f[i][j] = f[i - 1][j];
for (int k = c; k <= d && k * i <= j; ++k) {
int v = 1ll * g[i][k] * ifac[k] % P;
// printf("%d %d %d %d %d\n", i, k, g[i][k], ifac[k], v);
f[i][j] = (f[i][j] + 1ll * f[i - 1][j - k * i] * C(n - j + k * i, k * i) % P * v) % P;
}
}
cout << f[b][n] << "\n";
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Grouping |
| User | james1BadCreeper |
| Language | C++ 20 (gcc 12.2) |
| Score | 600 |
| Code Size | 1393 Byte |
| Status | AC |
| Exec Time | 37 ms |
| Memory | 11548 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_many_01.txt, subtask_1_many_02.txt, subtask_1_many_03.txt, subtask_1_many_04.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_min_01.txt, subtask_1_randa_01.txt, subtask_1_randa_02.txt, subtask_1_randb_01.txt, subtask_1_randb_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 3584 KiB |
| sample_02.txt | AC | 1 ms | 3604 KiB |
| sample_03.txt | AC | 37 ms | 11548 KiB |
| sample_04.txt | AC | 1 ms | 3728 KiB |
| subtask_1_many_01.txt | AC | 29 ms | 7852 KiB |
| subtask_1_many_02.txt | AC | 27 ms | 11108 KiB |
| subtask_1_many_03.txt | AC | 28 ms | 7752 KiB |
| subtask_1_many_04.txt | AC | 29 ms | 9412 KiB |
| subtask_1_max_01.txt | AC | 11 ms | 8216 KiB |
| subtask_1_max_02.txt | AC | 10 ms | 7824 KiB |
| subtask_1_min_01.txt | AC | 1 ms | 3512 KiB |
| subtask_1_randa_01.txt | AC | 3 ms | 6492 KiB |
| subtask_1_randa_02.txt | AC | 1 ms | 4076 KiB |
| subtask_1_randb_01.txt | AC | 7 ms | 7824 KiB |
| subtask_1_randb_02.txt | AC | 2 ms | 4604 KiB |