QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#697099 | #6756. 桂花树 | user10086 | 30 | 231ms | 44568kb | C++23 | 878b | 2024-11-01 10:26:19 | 2024-11-01 10:26:20 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 3.3e4 + 10, K = 10, MOD = 1e9 + 7;
int dp[N][1 << K], n, m, k;
void solve()
{
cin >> n >> m >> k;
for (int i = 1, x; i <= n - 1; i++) cin >> x;
for (int i = n; i <= n + m; i++) memset(dp[i], 0, sizeof dp[i]);
dp[n][0] = 1;
for (int i = n; i < n + m; i++)
for (int j = 0; j < (1 << k); j++)
if (j & 1) (dp[i + 1][j >> 1] += dp[i][j]) %= MOD;
else
{
int s = __builtin_popcount(j);
(dp[i + 1][j >> 1] += 1ll * dp[i][j] * ((i + s) + (i + s - 1))) %= MOD;
for (int p = 0; p < k && i + 1 + p <= n + m; p++)
if (!((j >> 1) & (1 << p))) (dp[i + 1][(j >> 1) | (1 << p)] += 1ll * dp[i][j] * (i + s - 1)) %= MOD;
}
cout << dp[n + m][0] << '\n';
}
signed main()
{
cin.tie(0)->sync_with_stdio(0);
int c, t; cin >> c >> t;
while (t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 5
Accepted
time: 1ms
memory: 3588kb
input:
1 15 4 2 9 1 2 3 4 4 1 1 1 1 4 3 10 1 2 3 4 2 10 1 2 3 2 3 0 1 2 2 8 1 2 4 10 1 3 3 0 1 2 3 2 0 1 1 2 2 0 1 2 4 9 1 4 2 0 1 1 1 2 4 1 1 4 4 8 1 1 1 3 3 0 1 2
output:
66 10132 787 66 105 16 1296 315 35 15 1296 63 1110 11384 315
result:
ok 15 numbers
Test #2:
score: 5
Accepted
time: 0ms
memory: 3532kb
input:
2 15 4 2 0 1 1 1 3 4 8 1 2 2 2 9 1 3 4 0 1 1 4 2 9 1 1 1 3 4 2 1 1 3 3 10 1 1 3 3 0 1 2 3 2 0 1 1 3 2 0 1 1 3 4 2 1 2 2 2 0 1 2 2 0 1 4 4 8 1 1 2 3 2 0 1 2
output:
63 4553 16 3465 66 4347 366 315 35 35 4347 15 15 11384 35
result:
ok 15 numbers
Test #3:
score: 5
Accepted
time: 15ms
memory: 22288kb
input:
3 15 25363 0 10 1 2 2 4 5 6 5 7 5 7 7 8 13 11 13 12 17 14 19 20 20 22 23 24 22 26 26 24 28 28 30 32 32 30 34 33 35 34 38 37 41 41 40 40 42 46 45 44 47 49 51 49 51 54 54 56 55 58 57 59 60 62 60 61 64 65 63 65 68 66 70 68 69 74 75 72 76 77 78 77 77 78 79 84 83 83 85 87 89 90 91 90 90 91 93 93 97 95 98...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
result:
ok 15 numbers
Test #4:
score: 5
Accepted
time: 0ms
memory: 3696kb
input:
4 15 95 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 81 1 0 1 1 3 3 2 4 4 4 7 8 8 11 11 12 15 16 17 18 19 17 19 22 20 22 24 25 27 24 25 26 28 29 32 33 32...
output:
189 161 157 183 179 179 185 165 161 179 191 159 199 177 195
result:
ok 15 numbers
Test #5:
score: 5
Accepted
time: 18ms
memory: 24136kb
input:
5 15 24238 1 9 1 2 2 3 2 3 7 6 6 8 11 8 13 14 14 13 14 15 15 20 17 21 19 24 25 22 23 28 27 29 28 31 32 34 35 32 35 35 39 37 38 42 39 41 43 42 47 47 45 48 49 52 50 52 51 55 53 57 58 58 60 58 60 64 62 66 66 65 65 69 68 68 73 71 72 73 75 78 77 76 78 82 81 84 82 85 84 87 86 89 90 90 90 90 91 93 94 94 98...
output:
48475 54131 56879 54501 49951 55359 46639 52775 56387 53417 55987 58213 48849 46865 56865
result:
ok 15 numbers
Test #6:
score: 5
Accepted
time: 1ms
memory: 3944kb
input:
6 15 90 2 0 1 1 3 3 4 6 3 5 6 1 4 8 6 3 7 2 8 17 12 1 15 8 10 17 4 7 22 1 16 15 13 17 6 24 18 20 29 24 5 37 26 19 1 36 10 11 1 32 12 29 25 36 43 25 36 35 27 30 48 13 57 43 3 48 20 49 10 42 33 32 15 67 3 72 18 59 45 65 22 47 21 76 44 36 70 31 40 36 75 97 2 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
output:
32399 37731 39999 28223 29668 37731 36193 26895 35436 39301 33946 31771 30975 24335 36958
result:
ok 15 numbers
Test #7:
score: 0
Wrong Answer
time: 18ms
memory: 17924kb
input:
7 15 23937 2 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 ...
output:
-3047407 -148206074 -347536046 -573049706 -781530585 -842435355 -199797518 -859366301 -137398331 -373780986 -750908273 -862618609 -974401621 -985588154 -917039594
result:
wrong answer 1st numbers differ - expected: '291919861', found: '-3047407'
Test #8:
score: 0
Wrong Answer
time: 1ms
memory: 4020kb
input:
8 15 1 89 0 1 88 0 1 86 0 1 81 0 1 89 0 1 88 0 1 85 0 1 88 0 1 99 0 1 93 0 1 94 0 1 79 0 1 97 0 1 88 0 1 96 0
output:
-636167905 791512728 -994415499 289785648 -636167905 791512728 716723018 791512728 509587081 555313508 764410892 -973737271 -631223331 791512728 325353814
result:
wrong answer 1st numbers differ - expected: '643555007', found: '-636167905'
Test #9:
score: 0
Wrong Answer
time: 1ms
memory: 4196kb
input:
9 15 1 85 0 1 86 0 1 90 0 1 87 0 1 87 0 1 91 0 1 81 0 1 79 0 1 86 0 1 80 0 1 81 0 1 88 0 1 98 0 1 89 0 1 78 0
output:
716723018 -994415499 90061983 -235189487 -235189487 -878650261 289785648 -973737271 -994415499 -205403433 289785648 791512728 465502032 -636167905 -88271587
result:
wrong answer 1st numbers differ - expected: '414090976', found: '716723018'
Test #10:
score: 0
Wrong Answer
time: 9ms
memory: 15948kb
input:
10 15 1 2600 0 1 2562 0 1 2885 0 1 2926 0 1 2980 0 1 2796 0 1 2809 0 1 2441 0 1 2964 0 1 2384 0 1 2634 0 1 2284 0 1 2732 0 1 2525 0 1 2635 0
output:
-512760447 -185079784 -639136394 -968988908 -136375300 480644067 336657433 -686630600 434146564 708948431 650570220 -917661628 466157658 625827758 470586972
result:
wrong answer 1st numbers differ - expected: '980378455', found: '-512760447'
Test #11:
score: 0
Wrong Answer
time: 11ms
memory: 3952kb
input:
11 15 1 97 8 1 98 8 1 75 9 1 86 10 1 91 10 1 80 10 1 99 10 1 75 10 1 81 3 1 86 8 1 76 10 1 79 9 1 77 9 1 79 8 1 92 10
output:
-683994416 -902244090 129124513 -243573618 -60539375 -13967232 -319554749 565712382 -324710656 265496898 -19270773 -100122919 615750509 24080475 579446673
result:
wrong answer 1st numbers differ - expected: '201967493', found: '-683994416'
Test #12:
score: 0
Wrong Answer
time: 202ms
memory: 17712kb
input:
12 15 1 2419 9 1 3000 8 1 2952 9 1 2911 10 1 2596 8 1 2997 10 1 2479 10 1 2447 10 1 2504 8 1 2325 9 1 2473 10 1 2674 8 1 2817 9 1 2303 8 1 2253 6
output:
-5928837 663155928 -800956903 301918856 -180875246 -381340880 -659833825 -152738462 -138655031 809492844 554271513 379943981 96403277 839151205 -764751696
result:
wrong answer 1st numbers differ - expected: '897921773', found: '-5928837'
Test #13:
score: 0
Wrong Answer
time: 1ms
memory: 4064kb
input:
13 15 96 77 0 1 1 2 2 3 3 4 4 5 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 65 17 9 33 83 76 52 42 17 56 39 82 26 53 89 96 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...
output:
-461473606 -150931095 130381486 -299742427 -476711682 917128966 -896346321 222585997 751212541 -131558218 -454020793 724388615 -962530725 -342888265 4699893
result:
wrong answer 1st numbers differ - expected: '875522633', found: '-461473606'
Test #14:
score: 0
Wrong Answer
time: 1ms
memory: 3952kb
input:
14 15 79 92 0 1 2 1 3 2 5 6 6 6 10 7 8 10 13 14 13 15 16 17 18 17 18 21 24 25 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 18 33 33 18 9 48 19 2 6 12 28 3 22 50 5 24 14 10 15 42 11 44 36 38 58 21 9 96 81 0 1 2 3 4 3 2 4 7 7 1 7 10 12 13 1 9 14 6 13 18 4 2 4 14 25 3 3...
output:
705773829 -7883688 -554407835 206600264 865951769 -923330036 297595522 -437890542 -947460498 -109629502 512025425 297595522 -547230989 865951769 383618744
result:
wrong answer 1st numbers differ - expected: '69626057', found: '705773829'
Test #15:
score: 0
Wrong Answer
time: 28ms
memory: 44568kb
input:
15 15 27219 2720 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50...
output:
28464332 -935821345 466702412 736846514 -34871695 -3757488 -252559690 -245350020 -11495271 998021066 -805233064 -787674024 532469988 126180470 479291967
result:
wrong answer 1st numbers differ - expected: '512213075', found: '28464332'
Test #16:
score: 0
Wrong Answer
time: 19ms
memory: 42564kb
input:
16 15 23470 2270 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50...
output:
-475332217 -38956831 -623618067 -184041 -416048973 -823494718 -189215559 245325658 805332367 544189361 -597152270 -372848960 834166001 18157116 -649396148
result:
wrong answer 1st numbers differ - expected: '613353516', found: '-475332217'
Test #17:
score: 0
Wrong Answer
time: 6ms
memory: 5608kb
input:
17 15 94 82 9 1 2 2 3 3 6 6 8 6 10 7 10 13 10 14 14 16 17 18 17 20 18 23 24 22 26 25 27 25 26 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 59 39 56 52 21 51 66 59 33 68 29 34 62 47 59 76 54 72 40 40 3 4 63 33 44 73 59 18 19 70 25 77 93 86 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
output:
-37081744 268072692 -118825781 -673003913 -345643385 619154221 283124135 -930936722 -64020411 -895887803 -162066356 -224973153 700424341 -747376404 -9887892
result:
wrong answer 1st numbers differ - expected: '57879436', found: '-37081744'
Test #18:
score: 0
Wrong Answer
time: 5ms
memory: 4136kb
input:
18 15 78 96 1 1 1 2 2 3 3 4 4 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 7 7 52 54 22 16 21 56 64 32 42 64 52 49 19 87 86 9 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
output:
-188090213 712353413 -302755694 754351579 405489350 -45169498 750811221 -112150873 701135782 87944142 -275922382 667780069 -868724197 -335523125 343288116
result:
wrong answer 1st numbers differ - expected: '76805686', found: '-188090213'
Test #19:
score: 0
Wrong Answer
time: 211ms
memory: 40480kb
input:
19 15 26104 2591 3 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50...
output:
-757909775 186733986 954171619 984593086 -964306627 933396831 -599035924 879459261 -87737575 -580736272 177723668 273502081 -441041729 440694527 496617857
result:
wrong answer 1st numbers differ - expected: '352998989', found: '-757909775'
Test #20:
score: 0
Wrong Answer
time: 231ms
memory: 42564kb
input:
20 15 22821 2558 8 1 1 1 3 2 4 2 5 5 5 7 7 13 4 15 12 1 17 15 6 10 10 13 20 20 1 16 14 9 9 28 24 14 28 2 28 35 20 30 37 1 9 21 35 42 23 41 11 15 29 10 1 13 6 24 11 11 46 32 39 32 10 59 57 20 24 51 24 60 28 65 16 31 42 25 12 27 28 53 49 15 12 58 73 83 47 7 71 2 2 26 57 82 61 17 17 48 96 23 83 2 41 59...
output:
713713040 -329715610 -453008042 885313424 317470036 -9500283 -69815163 809037488 459666079 83844465 68106711 -99684691 139829689 380959794 631199815
result:
wrong answer 1st numbers differ - expected: '852082753', found: '713713040'