This commit is contained in:
Zengtudor 2024-11-21 11:37:33 +08:00
parent c11cc27036
commit 1befb5cf74
28 changed files with 2185 additions and 0 deletions

125
src/20241121/U504526.cpp Normal file
View File

@ -0,0 +1,125 @@
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD = 1e9 + 7;
ll pd(ll base, ll exp, ll mod)
{
ll res = 1;
base %= mod;
while (exp > 0)
{
if (exp & 1LL)
{
res = res * base % mod;
}
base = base * base % mod;
exp >>= 1LL;
}
return res;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int m, q;
cin >> m >> q;
vector<int> que(q);
for (auto &x : que)
cin >> x;
int max_n = 0;
for (auto n : que)
max_n = max(max_n, n);
if (m == 1)
{
for (auto n : que)
{
if (n == 0)
{
cout << "1\n";
}
else
{
ll ans = pd(2, n - 1, MOD);
cout << ans << "\n";
}
}
return 0;
}
vector<ll> dpp(m + 2, 0);
dpp[1] = 1;
for (int i = 0; i < max_n; ++i)
{
vector<ll> dpc(m + 2, 0);
for (int j = 1; j <= m; ++j)
{
if (dpp[j] == 0)
continue;
ll de = (dpp[j] * (2LL * j)) % MOD;
dpc[j] = (dpc[j] + de) % MOD;
if (j < m)
{
ll di = (dpp[j] * (j)) % MOD;
dpc[j + 1] = (dpc[j + 1] + di) % MOD;
}
}
dpp = dpc;
}
vector<vector<ll>> dpa(max_n + 1, vector<ll>(m + 2, 0));
dpa[0][1] = 1;
for (int del = 0; del < max_n; ++del)
{
for (int j = 1; j <= m; ++j)
{
if (dpa[del][j] == 0)
continue;
ll we = (dpa[del][j] * (2LL * j)) % MOD;
dpa[del + 1][j] = (dpa[del + 1][j] + we) % MOD;
if (j < m)
{
ll wi = (dpa[del][j] * j) % MOD;
dpa[del + 1][j + 1] = (dpa[del + 1][j + 1] + wi) % MOD;
}
}
}
for (auto n : que)
{
if (n == 0)
{
cout << "1\n";
continue;
}
if (n > max_n)
{
cout << "0\n";
continue;
}
ll ans = 0;
for (int j = 1; j <= m; ++j)
{
ans = (ans + dpa[n][j]) % MOD;
}
cout << ans << "\n";
}
}

32
src/20241121/U504527.cpp Normal file
View File

@ -0,0 +1,32 @@
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD = 998244353;
ll n, res, m;
ll ca = 0;
void dfs(int pos, ll cn) {
if (pos == n) {
if (cn % m == res) {
ca = (ca + 1) % MOD;
}
return;
}
for (ll a = 0; a < m; ++a) {
dfs(pos + 1, (cn * a) % m);
}
}
int main(){
cin >> n >> res >> m;
if (n == 0){
if (res == 1 % m){
cout << 1 << endl;
}
else{
cout << 0 << endl;
}
return 0;
}
dfs(0, 1);
cout << ca % MOD << endl;
return 0;
}

1
src/20241121/chain/1.ans Normal file
View File

@ -0,0 +1 @@
16

2
src/20241121/chain/1.in Normal file
View File

@ -0,0 +1,2 @@
1 1
5

1
src/20241121/chain/2.ans Normal file
View File

@ -0,0 +1 @@
678247101

2
src/20241121/chain/2.in Normal file
View File

@ -0,0 +1,2 @@
1 1
508872207

1
src/20241121/chain/3.ans Normal file
View File

@ -0,0 +1 @@
13029318

2
src/20241121/chain/3.in Normal file
View File

@ -0,0 +1,2 @@
2 1
4778

500
src/20241121/chain/4.ans Normal file
View File

@ -0,0 +1,500 @@
2582634
143531076
203551445
385478539
929252665
6810985
456733173
837918280
255137993
502421930
226536937
693181397
157352546
194089433
924453961
56286567
473412973
605581678
686646122
206478154
942570688
564784531
397672595
699545803
922707937
771240592
305582512
448397801
855005298
260925623
625415074
734217248
687462934
556259084
359134382
127879145
450169025
56524145
171672913
876837607
916773367
742349163
502850255
904930663
407570540
698140407
228834032
41858811
643671715
1
670788793
173774882
697418860
441796881
150797140
636467268
128671947
3318896
297702635
264531099
146634555
463056973
4128043
335303440
575277823
193146612
864236092
473352181
236142845
229603765
841812130
137454517
576175850
926379859
389495928
59659515
760233653
235178725
898001798
756056197
265580528
563034488
464364409
983391495
522597201
311050600
284923206
355224235
562888280
613666313
873262353
473513563
678192251
954345800
69387964
491814640
487488229
681056192
488697713
236281771
869068869
920753739
958342969
143703407
502521027
93459305
753990156
52645039
644327267
422521666
348164240
5905568
569462375
322689267
942405863
447667089
705413900
57488123
529484594
589371859
513550535
714510798
928996275
749603407
314350767
535503487
27287658
534323877
543788818
977432609
343108113
786359071
828650245
644429287
4364108
754222141
46033356
19015126
778647171
824177506
479222650
793981167
906216441
121984839
589049670
411400909
396724767
219243489
43371589
483181047
970240932
486144264
890440169
920806215
182122632
820076136
237254670
468794388
238928293
426746641
768283821
567614309
943566689
640699002
386308176
690012316
152832446
444951955
771518938
539631867
297371910
373287158
147005666
639527187
609127351
986582849
584168328
851804508
577197720
313409045
17541507
958308805
17191489
255365847
97883449
706675735
783246917
396297662
407446449
279381004
541400430
85684423
677431782
392172902
527494735
726154275
123019126
73844543
54594780
485464364
840869816
381345028
451881844
584018338
421163882
470936790
861986146
373811947
404067268
291001403
47360435
110261566
917407066
708800560
531183222
891052990
697194628
482774457
861197434
658254989
417856267
753546295
530262177
958050901
988491390
630559290
189504681
265231957
900951431
621362855
467616260
530197220
801177947
392192485
90758422
126708617
511150393
810846165
934516834
349232471
796534483
53675106
525559813
819208586
770537812
440459139
716859565
894739986
625992502
601853537
823477948
528517346
916197159
582772556
174474574
20663853
338442802
389495842
853544696
703660307
905011417
95474440
332907814
143221753
749001381
357738570
828800173
10676282
594010498
553493622
330439435
332173014
107461142
639338740
719178580
577165571
224143711
46865698
822122638
596246595
120007750
427993738
867253509
270400102
725487398
817252683
951821517
375483411
124741581
137489801
788108812
659656303
702893959
230463583
595151162
113339992
333261220
92867692
256422057
32778689
590889242
664813919
739892771
412148010
665868292
640065375
545175343
92366942
44128557
561806281
629350965
763191623
354719644
527698713
923422914
389848022
659135888
654688412
154082136
822135994
472540671
72794989
640038315
538397742
243284215
99513403
670159232
688689617
906259491
653435911
136840720
586289311
930713551
953644249
735629892
536221293
963701536
437673730
627977670
809454723
270096876
915918924
297746899
529110367
103140468
188704082
802242523
330461276
139805088
207732502
677908865
375978286
399893035
847510352
892960038
516447383
532792676
254223598
802009138
296494597
902191692
523339461
631793898
121919456
617733420
529810828
848229716
788094214
753299491
897734837
400083493
434602812
68515559
197211776
780082437
156213938
424285926
127738977
852033049
784581224
556328714
608422383
289885368
789395316
489959062
550747712
810294525
777235179
76061496
639236754
123581232
787977811
624201592
605914310
140759147
706175205
846085553
288513538
859668989
218013835
858910758
370374210
238025482
172331299
408032393
946886197
816658185
621907876
775070386
727668951
543354489
614753905
678607901
44942430
24169960
636898120
827278839
623015053
915339621
235387506
230126417
178640469
175973777
362417566
762608427
212379277
871635839
20921834
566067172
623849613
404673021
187939854
855100256
14933387
246234951
862160035
635988505
565594836
404442408
508968986
316772301
930130930
686799014
874637822
604926865
197383120
293079249
688944956
29122373
11001341
475858661
632558892
133715751
101073131
165398039
271183616
363847606
52921689
241079708
333112361
304750126
911107356
802588069
592111265
675127467
408541485
238790961
739607317
492033903
164798359
695493717
509374028
189173905
106321511
737548614
353236392
707844295
110797961
406430502
25201162
165225347
424837671
663304291
96213118
52046966
738989423
915603387
642344062
703011720
916855842
873637985
893803878
495948837
190394457
670569219
843323878
470435174
440416197
553028018
107720814

501
src/20241121/chain/4.in Normal file
View File

@ -0,0 +1,501 @@
75 500
76131
1742
64189
93174
16644
61821
35561
3233
30725
78514
60040
79048
68701
73171
14440
28065
48690
10270
99055
65497
10443
43485
70888
88640
6863
64887
40347
62974
12309
37711
82438
97791
97296
44593
69961
76854
25589
13411
98305
32298
30613
11824
69563
92599
43639
72620
50598
40689
60896
1
65503
41264
3457
17725
95398
45363
66234
98614
37814
69429
73712
75568
50310
31085
80040
32127
86150
44551
23554
68904
55062
42110
3419
54036
24365
55243
45979
17381
59262
61716
21364
29504
96313
22084
64901
39392
92317
48244
73059
51235
44963
8933
98260
20217
51873
64329
24336
62722
31086
51934
99996
18195
61860
16678
40836
94464
44642
72435
62498
79088
3326
57364
17679
69631
11977
78124
72781
41811
24085
8299
38734
26318
5527
24045
37944
96843
34673
98571
37860
17856
54113
728
68714
5872
93631
65030
75139
83702
7174
78276
41573
7060
26061
89586
48058
7085
17243
24273
71826
71718
68034
51962
57842
24201
55281
84947
64985
48759
1121
63803
59569
23838
38278
36359
44503
22353
33111
36927
49379
51371
13853
72717
65609
78279
91635
32303
90302
6858
59075
27237
92752
47658
93462
87704
59581
39624
94201
45886
75050
38712
70150
61584
20086
76858
6426
35147
44295
34864
78834
1009
93810
55832
26829
89825
29055
97520
2774
76202
47379
10495
20074
64453
21676
57508
41715
64281
89014
76181
97445
40550
65392
61701
21269
14198
2603
67148
31447
76484
77309
88909
18345
99807
91025
34921
88078
12120
49962
1393
66899
57799
31345
27662
55047
28579
45637
41581
85977
6233
21906
98123
46725
85669
18395
95722
52888
78102
49884
25797
64105
13949
35787
58332
81013
45703
50632
4329
13923
99607
79521
55898
99732
41736
25225
18663
40789
22339
83512
45629
59073
63120
10293
78705
48495
30531
79329
64115
97556
67769
70898
2136
52597
32318
24541
49343
40644
79665
63823
89066
24523
5971
48447
71067
14547
87703
86561
65336
15740
49291
90504
26766
7117
93378
54743
47484
64188
87246
77416
45185
85703
99699
83425
49117
51066
75371
98570
7511
12484
28111
68608
63402
17491
34008
10957
72343
63544
96598
26746
56101
28289
82308
54898
44204
20364
41887
29589
66562
66223
7252
64697
16997
99657
65397
32391
15037
40015
3218
36406
47099
42599
32254
97845
17560
24250
12827
14132
36840
43943
24093
80256
60633
33379
2611
55483
14884
26471
41409
70351
52184
12788
34788
59936
70093
77005
83804
83731
99227
93471
55239
1549
69217
47034
11780
71244
79249
56388
14181
43821
63059
36162
25801
24746
36221
80672
12815
73494
44965
51207
37321
41434
91667
74945
70924
9098
78170
69937
33220
98332
99943
63202
23671
75025
30855
34023
12688
98492
56554
72136
12499
63759
43566
44915
47517
35505
50847
38965
65308
75929
99637
21281
98786
95613
49257
52596
99285
62053
69730
48901
19423
33450
23431
12266
40024
7498
69313
90326
66946
61055
89571
88139
84628
2836
50688
42729
80897
43257
41136
530
88287
70008
42992
79109
74955
57125
45750
55147
27137
32241
38911
4228
51389
41479
42553
81618
49073
65883
94978
68223
97926
9209
86929
57251
87683
76217
29524
87424
9497
84830
10789
34190
25873

1
src/20241121/chain/5.ans Normal file
View File

@ -0,0 +1 @@
812798037

2
src/20241121/chain/5.in Normal file
View File

@ -0,0 +1,2 @@
36 1
571614105

500
src/20241121/chain/6.ans Normal file
View File

@ -0,0 +1,500 @@
623730012
379841537
160364585
676869857
233277528
85728167
153478207
212337185
379836134
578555958
975471180
514115854
433114068
624797270
448097770
101521863
727583652
420500658
938893456
45228002
468520710
221154925
888078515
926052733
834363591
199198792
464851172
411774869
395032201
784320135
884134420
798366703
248828006
154690692
123371217
201253271
729217029
42055419
787445948
203536908
164647024
685218435
749868234
548822916
948011662
191019194
950318482
273127767
631626753
213217804
144327824
15233373
650162252
366285581
60442290
69666551
540229492
988704824
657375492
760291905
498981948
706347276
639472560
553073147
259397251
32103822
297347010
925279804
199133620
952502422
692083981
29191837
982653627
267039061
510479398
563877081
221149637
842342093
412921421
919578845
767108743
2401220
470781644
354381843
411332836
880670239
762766172
455802087
607856696
214711198
38247825
3172571
570270238
893324414
775987971
266647895
278927314
310560086
308683523
613874930
908073310
526176296
289189139
46732255
940326522
710571159
717636710
322531012
699656062
179162100
384942046
813677719
545113428
928132204
857854288
466050764
437390214
49526231
715049767
477399625
484315454
176107886
331860381
426084224
597493802
59840327
96018761
6165626
76413246
852485317
980867469
91220386
555324199
317365258
300960561
335011882
44824046
83292025
998752238
980304664
14753223
251382860
768179009
625245455
681246997
766777289
858470892
467618087
165878515
22404163
186434818
786123719
283927993
362885112
164065352
340635615
302730309
624846566
496818042
696674537
304579080
500753906
262887600
717101255
543987519
91004192
109822775
294726197
121892168
776600406
662160748
276869150
438245003
871257529
407370129
737758214
357083516
377834342
446277175
188713052
392162909
707948070
211453372
958401204
355429142
44244070
162700423
543141074
183451678
887396158
915168333
56376273
570344976
352798968
493591216
147313095
831639713
563987307
811250719
734090308
912893572
459893145
294174805
815401204
9349150
842902326
486371076
234483832
144799513
294564714
313821799
88802078
463320223
140474194
759536121
299676715
804814443
74850902
988640064
280520772
769932139
526475252
235330373
679809673
567920458
137046115
560559875
61269333
587967571
767211044
599312914
779495127
169140414
934954935
693815536
118867255
942786884
152728580
77887337
195827389
489873617
795454467
92231543
894304294
952407817
559693955
221899884
507179570
678657792
424333064
274075359
252767821
606758295
174317317
121875699
214195194
313619892
208314136
570465872
636073642
654195072
178764687
462991823
422435039
421217570
420673551
206487762
446262812
632829757
147487938
131239640
570749728
762030325
33636772
326208371
155593324
827709627
749583714
716989169
250052032
158349309
722204048
301583714
147129503
733869480
863689832
718685783
884631977
92286178
620209242
167893117
4078865
528573416
809719888
484441167
818263119
502073525
232911372
948207745
649839303
30358890
607497380
147976882
90735137
821529654
201480745
703569837
120827079
438424597
706157532
994925201
172875486
597826180
778157437
463424928
47808555
458377966
909800584
378671831
474932263
26018485
601464853
473819753
947957678
234209096
528975037
661664418
585946241
844360960
195758475
958257263
444664773
212914316
492474160
86951865
322844061
343874628
298913794
78333903
320276985
9189778
374757523
671214313
680038853
655259159
432930705
640616193
141095725
618458992
815772559
575061198
341180299
56482476
635039530
542803586
372238557
235163867
864415605
588491560
411684561
302275466
733065529
160753910
578492407
662461470
728045925
349351741
402631917
851347255
849696734
65059024
297938832
899886003
846487055
198527354
131704882
709785636
686000767
794951061
864155285
296060270
637021370
131385046
126775250
725381039
4455730
442198590
766630815
575664061
41511293
759651835
35634360
919304631
557498489
684621765
156384690
87463251
976122822
913748701
273317244
233054376
486079490
99465864
121074839
712196179
160752882
583930551
364447288
261835616
179004006
786596346
23859124
766259864
895846608
551103817
391123893
707780307
104131458
761253511
776942499
982845983
483120227
426054606
961883814
14224121
459579970
953390769
646451150
505189572
319036060
361996357
946351881
822343003
394037774
164869475
501058345
589836123
397822299
190255564
676639400
302805314
965027176
692577008
656060082
181877223
511065444
248247909
180591149
592721486
450779419
109993438
890023036
328269036
733479792
760597662
875582590
454391803
737176747
716925508
615916674
740821071
131787607
409580587
359761755
259413669
388286402
915890630
391546938
855014848
33290247
622773874
290594461
566935124
22639285
902008148
62166051
171635350
316625989
90401197
804465283
483288481
739980732
131401559
580100127
641069130
600665842
691341472
295650543
561811645
95077284
466898649
986848116
804643677
86740310
921054850
307193025
125932036
7350356
966152473
411585895

501
src/20241121/chain/6.in Normal file
View File

@ -0,0 +1,501 @@
35 500
294331834
423319294
162753572
74190232
523704503
29091433
965618181
578545690
867768736
841246296
132051465
185780438
680812262
682336984
798976346
696370870
905128987
435944252
23967488
732639954
346567163
765353217
222784487
416479892
954842621
570340890
929811232
209258858
70062756
87703318
884182088
781261154
494582292
518293337
741925282
943887089
683978115
423145056
223999015
147338709
681801928
484891396
651707921
937307768
2804238
195987873
426752098
814308299
387712292
66215993
892387749
140744581
576221998
694911467
325099524
535046407
264173506
738555882
448027280
749595691
570400832
812000223
55297903
31405183
123971162
155464097
219797654
285984515
107029961
16409281
654446618
655488537
110867619
435202550
888556929
872121749
76792200
999373164
926098355
8031564
912095793
210275292
900845864
255959090
469214713
458372495
990785499
726326114
951964767
190892039
911104580
924189396
175492129
930686608
372502004
745358202
348538855
557765562
443244672
744833368
35281553
776858351
901175908
181644324
516996160
105922740
473267035
640396362
117296953
89203412
992852908
296541205
148133685
457034675
986300822
298810563
46202044
118708612
490394848
697629311
588352253
914522732
624193684
575024287
297261564
203825830
802594946
49780586
868527567
856728235
565549855
392241124
908841658
500322033
244084577
850178741
135073468
831730497
774370123
206517233
388982297
136975856
427297648
28449980
477329797
895662775
399088126
400485755
5837239
355874069
581544485
77518927
114215617
105229022
138053702
591829844
245592816
956283440
441838601
479091811
502703126
51311803
324141300
555658210
354493513
204794856
31695828
828510789
392251240
697229592
693904179
5174859
417298071
855820843
796748809
778592316
956192701
45853656
821097801
531970812
328539581
841182228
10934597
311548461
632816271
837302962
283971462
613804203
705164627
541641522
147040024
433772258
195700518
968052116
360577956
830548732
759036994
25885061
402800751
56153351
344933506
292077076
647945721
913579022
106859516
267663216
343736178
313512934
325202536
690024148
280078193
264222546
254668836
848210514
7564625
65350367
960712571
98703704
500153219
993726660
560206770
35414225
818823531
54898826
577950375
736322297
487988400
279663880
469231901
86596690
403095978
437989572
364051584
946604353
929393582
958385923
201049506
908255571
403425167
830685772
114618581
729977869
353003247
464019334
878594374
818518725
771801028
185974981
837962138
375477086
537913074
405178847
334730877
517304131
811878390
709235923
814443477
44146275
378355394
209764245
861654912
999023790
20186208
907749945
891070092
654402500
748303342
386885556
877736810
282382173
97934694
480248114
88684273
125260241
107068811
189354451
198756879
208076236
349144227
978380699
194526393
684977048
761836303
944789950
138070255
880264697
186000947
209447052
520033715
477360772
393563499
100006661
102103593
996621113
197581083
981302671
624986557
375307657
987978265
976189983
590908501
592333316
578029431
112753487
8532167
391832536
248692386
167203069
403737231
50861384
341322673
155708998
249058543
926869180
234622345
528019547
12081592
979439104
779178596
208684379
12118744
414338950
999737531
193836326
479221725
916396168
824549202
446441392
827666360
643019313
942057639
147216838
175887294
332097170
953564082
882236555
98368577
214653560
330316537
721881596
77339916
24392599
602530812
212110901
590692986
515631427
774275916
890437394
862513039
340494488
811140438
986250618
469806925
592880737
414118002
277649745
238621186
951622883
369353471
302024720
157581356
319542566
725555835
58424607
565667614
164845451
12235820
442675302
585705934
544850501
198804127
995679158
457747619
461158589
54946681
22816499
226094969
746291403
672427375
887841307
286016833
200090122
353713663
331346094
346955635
6452379
612295769
260219829
436711574
696836458
618091687
323576010
196752201
123874406
281194313
206523048
764892781
246569741
980167704
832760217
662291866
654891587
271637500
430350586
782196384
917592288
881695579
752522343
179915593
790217456
938064848
99992604
77582715
181592593
129440351
433680767
482610722
380314727
305203624
97461327
245136544
330427976
882739604
926813210
752240937
206248100
784802283
398480647
310469614
676998968
432721539
538404148
826852166
156887812
79903154
697925264
814410752
224295213
11671640
394634132
438970234
820888691
564713676
618526121
799355000
453673849
577372754
181913416
243320154
641829885
406812811
794569439
688344328
13237239
788682155
567742539
656099973
188223031
949809488
787305947
209250061
158961975
554946323
306800112
13589002
146066255
785468091
596416506
572666043
23425455
258447550
895260775
695600176
946327382
640468364
306003566
821826501
844229709
220133402
547930869
567614589
956013811
471857525
766859166
752832471
44610465
131744447
302658011
179866681
133073584
387011149
690125129
901359768
763414439
344549995
151953209
652298226
893601089
374727697
134083374

1
src/20241121/equiv/1.ans Normal file
View File

@ -0,0 +1 @@
1296

1
src/20241121/equiv/1.in Normal file
View File

@ -0,0 +1 @@
5 5 7

1
src/20241121/equiv/2.ans Normal file
View File

@ -0,0 +1 @@
971893873

1
src/20241121/equiv/2.in Normal file
View File

@ -0,0 +1 @@
59738474 0 523344560729

1
src/20241121/equiv/3.ans Normal file
View File

@ -0,0 +1 @@
738696687

1
src/20241121/equiv/3.in Normal file
View File

@ -0,0 +1 @@
771287401 0 34359738368

1
src/20241121/equiv/4.ans Normal file
View File

@ -0,0 +1 @@
207749248

1
src/20241121/equiv/4.in Normal file
View File

@ -0,0 +1 @@
512815061 0 835724821

1
src/20241121/equiv/5.ans Normal file
View File

@ -0,0 +1 @@
767286565

1
src/20241121/equiv/5.in Normal file
View File

@ -0,0 +1 @@
927394567 182067171807 409511160841

1
src/20241121/equiv/6.ans Normal file
View File

@ -0,0 +1 @@
256108394

1
src/20241121/equiv/6.in Normal file
View File

@ -0,0 +1 @@
680070637 372900248014 678223072849

1
src/20241121/equiv/7.ans Normal file
View File

@ -0,0 +1 @@
561782942

1
src/20241121/equiv/7.in Normal file
View File

@ -0,0 +1 @@
1000000000 662395333600 697348491840