ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214791 | #2161. 小L的栈 | ThySecret | 100 | 507ms | 32416kb | C++11 | 2.0kb | 2024-11-21 20:54:29 | 2024-11-22 09:35:12 |
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
// #define x first
// #define y second
#define File(a) freopen(a".in", "r", stdin), freopen(a".out", "w", stdout)
inline void debug() { cerr << '\n'; }
template<typename Type, typename... Other>
inline void debug(const Type& x, const Other&... y) { cerr << x << ' '; debug(y...); }
#define DEBUG(a...) cerr << "[" << #a << "] = ", debug(a);
typedef long long LL;
typedef pair<int, int> PII;
const int N = 2000010;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
template<typename Type>
inline void read(Type &res)
{
res = 0;
int ch = getchar(), flag = 0;
while (!isdigit(ch)) flag |= ch == '-', ch = getchar();
while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
res = flag ? -res : res;
}
template<typename Type, typename... Other>
inline void read(Type &res, Other&... y) { read(res), read(y...); }
int n, m, k;
int fc[N], inv[N];
inline int ksm(int base, int k)
{
int res = 1;
while (k)
{
if (k & 1) res = res * base % mod;
base = base * base % mod, k >>= 1;
}
return res;
}
inline int C(int m, int n) { return m < n ? 0 : fc[m] * inv[n] % mod * inv[m - n] % mod; }
void solve()
{
read(n, m, k);
if (k > m) return puts("0"), void();
// int ans = C(m - 1, m - k) * C(2 * (m - k), m - k) % mod * ksm(m - k + 1, mod - 2) % mod;
int ans = (C(m - 1 + m - k, m - k) - C(m - 1 + m - k, m - k - 1) + mod) % mod;
// int res = (C(n - m - 1 + k, k) - C(n - m - 1 + k, k - 1) + mod) % mod;
int res = (C(n - m + k + n - m, n - m) - C(n - m + k + n - m, n - m - 1) + mod) % mod;
cout << ans * res % mod << '\n';
}
signed main()
{
for (int i = fc[0] = 1; i < N; i ++) fc[i] = fc[i - 1] * i % mod;
inv[N - 1] = ksm(fc[N - 1], mod - 2);
for (int i = N - 2; i >= 0; i --) inv[i] = inv[i + 1] * (i + 1) % mod;
int T; read(T);
while (T --) solve();
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 36ms
memory: 32412kb
input:
100 26 20 10 26 24 9 13 2 2 21 13 4 29 7 5 22 19 13 12 1 1 26 1 1 24 20 2 17 15 15 3 1 1 24 14 17 25...
output:
514423014 112607261 534888 381817972 555144047 73489416 208012 352943583 53685987 152 5 0 946367425 ...
result:
ok 100 lines
Test #2:
score: 5
Accepted
time: 20ms
memory: 32412kb
input:
100 13 6 3 12 6 3 14 14 13 24 15 9 8 6 5 4 3 1 4 3 2 18 12 7 23 11 5 24 20 14 14 7 3 27 21 17 31 17 ...
output:
198016 56056 13 366737601 135 4 6 39504192 967067366 715926750 636480 64591509 0 671918485 796107692...
result:
ok 100 lines
Test #3:
score: 5
Accepted
time: 24ms
memory: 32412kb
input:
100 31 18 12 11 3 1 27 9 9 7 6 2 21 15 6 16 2 1 18 11 12 22 17 5 15 6 1 10 8 10 23 22 6 28 5 6 23 4 ...
output:
661234655 9724 815886766 126 267452475 9694845 0 656127752 705432 0 581024202 0 78189099 2674440 1 4...
result:
ok 100 lines
Test #4:
score: 5
Accepted
time: 27ms
memory: 32412kb
input:
100 25 22 14 7 5 6 6 1 1 7 1 1 7 4 2 8 5 1 8 2 1 18 4 5 5 4 3 18 9 7 11 10 6 4 2 1 15 4 2 3 1 1 3 1 ...
output:
594796736 0 132 429 140 196 429 0 12 33649000 3003 5 2674440 5 5 858 24310 823378651 935508470 0 856...
result:
ok 100 lines
Test #5:
score: 5
Accepted
time: 27ms
memory: 32412kb
input:
100 29 20 6 4 4 2 6 5 3 13 9 8 5 4 4 10 5 5 30 9 11 12 12 5 8 8 4 29 5 1 16 7 2 28 8 6 3 1 1 11 11 1...
output:
763947475 5 36 10080 5 1638 0 13260 165 249143859 5542680 630775223 5 1 56 534529540 293930 27971953...
result:
ok 100 lines
Test #6:
score: 5
Accepted
time: 16ms
memory: 32416kb
input:
100 5 5 5 26 22 4 19 17 16 25 17 8 31 2 2 28 21 12 15 3 1 31 8 2 22 1 1 15 3 2 3 2 2 25 17 3 15 3 3 ...
output:
1 957177681 2720 337431182 462027062 923233078 1485800 116294070 482563003 3863080 3 549208528 43459...
result:
ok 100 lines
Test #7:
score: 5
Accepted
time: 16ms
memory: 32416kb
input:
10 474 293 237 481 396 187 364 43 45 741 78 8 158 53 30 463 445 433 120 110 62 503 52 16 360 318 32 ...
output:
323352985 63241071 0 222507962 478641805 854383331 893261429 747110781 699961226 252997894
result:
ok 10 lines
Test #8:
score: 5
Accepted
time: 24ms
memory: 32416kb
input:
10 641 326 203 15 3 2 153 20 25 288 240 91 499 105 31 732 581 299 994 253 153 352 106 28 62 13 10 93...
output:
919680035 3863080 0 724023677 581680580 794343262 840693979 288065703 184728173 158286453
result:
ok 10 lines
Test #9:
score: 5
Accepted
time: 21ms
memory: 32412kb
input:
10 543 141 147 663 293 26 45 31 12 69 18 22 348 49 36 37 5 4 767 411 318 421 193 84 965 44 46 398 30...
output:
0 536162423 542866247 0 356102686 284316141 577945523 655525950 0 0
result:
ok 10 lines
Test #10:
score: 5
Accepted
time: 24ms
memory: 32416kb
input:
10 999 387 390 189 157 55 324 281 150 954 62 8 514 147 89 331 236 171 150 46 15 979 216 59 682 175 1...
output:
0 657224842 866062375 612350269 797998629 965804890 33283886 370426989 0 753780884
result:
ok 10 lines
Test #11:
score: 5
Accepted
time: 19ms
memory: 32416kb
input:
10 284 110 71 343 327 228 890 627 348 756 63 8 919 31 5 542 69 21 109 15 6 424 252 155 899 5 1 192 1...
output:
939661935 7427866 845407531 565632090 584793981 721121700 999456680 490287152 790372676 0
result:
ok 10 lines
Test #12:
score: 5
Accepted
time: 28ms
memory: 32416kb
input:
10 957 341 186 433 199 51 760 510 73 406 179 137 739 207 230 74 43 43 881 518 106 118 100 29 724 475...
output:
475101795 640352890 452627676 917987052 0 220718056 847304648 569168532 840548600 367170930
result:
ok 10 lines
Test #13:
score: 5
Accepted
time: 42ms
memory: 32412kb
input:
10000 948520 153123 37633 978977 610707 430315 861510 89319 84311 89854 76753 23361 539648 26973 539...
output:
224882239 78243119 752768981 133670970 823837837 861202414 172458352 917749445 141351091 428891672 1...
result:
ok 10000 lines
Test #14:
score: 5
Accepted
time: 29ms
memory: 32412kb
input:
10000 776217 468283 394226 679502 396921 440333 336294 175951 21262 158362 85737 87647 786586 679022...
output:
593235084 0 693263768 0 239343520 75293794 855075166 448580350 971747286 415188727 0 453115359 16674...
result:
ok 10000 lines
Test #15:
score: 5
Accepted
time: 32ms
memory: 32416kb
input:
10000 727020 72982 84798 511326 476765 238661 768301 198556 241391 42904 770 3 225143 21785 19973 71...
output:
0 264209582 0 365827860 338776996 0 643364371 0 923750084 514419494 803184187 996127244 18795969 819...
result:
ok 10000 lines
Test #16:
score: 5
Accepted
time: 21ms
memory: 32412kb
input:
10000 349236 250424 6551 245300 155779 53345 718003 538775 455477 554195 3258 1970 864269 350613 163...
output:
614690665 48068909 961727825 116922077 937665053 545463810 159985171 40051945 163855553 525905370 75...
result:
ok 10000 lines
Test #17:
score: 5
Accepted
time: 12ms
memory: 32412kb
input:
10000 130797 50408 54584 589075 456571 10806 78159 33427 38224 303639 7008 8635 585821 448649 100079...
output:
0 862178676 0 0 647286860 488363651 887107171 45701820 505945040 171439785 533367105 321658620 28991...
result:
ok 10000 lines
Test #18:
score: 5
Accepted
time: 36ms
memory: 32412kb
input:
10000 693060 190134 160913 997339 460961 184242 899251 525330 137457 513519 345024 295373 352825 155...
output:
285831846 259325823 603184339 400765664 326888470 292981576 579043448 572924932 83311047 662899396 1...
result:
ok 10000 lines
Test #19:
score: 5
Accepted
time: 26ms
memory: 32412kb
input:
10000 933167 891532 704848 80961 67286 35337 240488 174845 21388 451269 212850 49163 948517 31409 36...
output:
31241498 734172905 515809396 744766113 0 934513159 814225104 928984552 459018579 830020604 141239706...
result:
ok 10000 lines
Test #20:
score: 5
Accepted
time: 27ms
memory: 32416kb
input:
10000 61939 9116 2096 150659 75224 41401 13674 12474 10722 152304 47286 14033 319787 185775 135285 8...
output:
494879849 236192375 710885048 18162371 183133441 806117830 287024099 378052720 899612100 538326070 7...
result:
ok 10000 lines