QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#697098#6756. 桂花树user1008630 235ms44776kbC++23866b2024-11-01 10:25:572024-11-01 10:25:57

Judging History

你现在查看的是最新测评结果

  • [2024-11-01 10:25:57]
  • 评测
  • 测评结果:30
  • 用时:235ms
  • 内存:44776kb
  • [2024-11-01 10:25:57]
  • 提交

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] += 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)] += 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: 0ms
memory: 3576kb

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: 3656kb

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: 14ms
memory: 19884kb

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: 5892kb

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: 13ms
memory: 21988kb

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: 0ms
memory: 3696kb

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: 17ms
memory: 19972kb

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: 0ms
memory: 5864kb

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: 0ms
memory: 3896kb

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: 3ms
memory: 16948kb

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: 203ms
memory: 15652kb

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: 5888kb

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: 4012kb

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: 30ms
memory: 44776kb

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: 44736kb

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: 4236kb

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: 4140kb

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: 205ms
memory: 38376kb

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: 235ms
memory: 44604kb

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'