QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#341159 | #1005. 子集卷积 | iorit# | AC ✓ | 392ms | 131032kb | C++14 | 1.2kb | 2024-02-29 16:13:13 | 2024-02-29 16:13:14 |
Judging History
answer
#include <bits/stdc++.h>
#define LL long long
#define sl(n) strlen(n)
#define endline puts("")
#define pii pair<int , int>
#define pr_q priority_queue
#define debug puts("DEBUG.")
using namespace std;
const int N = (1 << 19) + 10;
const int inf = ~0u >> 2;
const int p = 998244353;
inline int getmod(int x)
{return x >= p ? x - p : x;}
int n,a[22][N],b[22][N],c[22][N];
void fwt(int *f , int op)
{
for(int len = 1;len < n;len <<= 1)
for(int i = 0;i < n;i += len * 2)
for(int j = 0;j < len;j++)
f[i + j + len] = getmod( f[i + j + len] + ( op == 1 ? f[i + j] : p - f[i + j] ) );
}
int main()
{
cin >> n;
int len = n;
n = 1 << n;
for(int i = 0;i < n;i++)
scanf("%d" , a[ __builtin_popcount(i) ] + i);
for(int i = 0;i < n;i++)
scanf("%d" , b[ __builtin_popcount(i) ] + i);
for(int i = 0;i <= len;i++)
fwt(a[i] , 1),fwt(b[i] , 1);
for(int i = 0;i <= len;i++)
for(int j = 0;j <= i;j++)
for(int k = 0;k < n;k++)
c[i][k] = (c[i][k] + 1ll * a[j][k] * b[i - j][k] ) % p;
for(int i = 0;i <= len;i++)
fwt(c[i] , -1);
for(int i = 0;i < n;i++)
printf( "%d " , c[__builtin_popcount(i) ][i] );
endline;
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 362ms
memory: 130816kb
input:
19 295104934 111814468 679703962 350815157 661791526 865051281 43411341 207358363 75519908 681336618 871711375 681249213 550559707 662716097 856748369 128340305 993619969 738085679 125994416 970719360 242257007 969140579 624833116 69896915 245857309 106508450 627920018 249585598 45102411 468567376 1...
output:
666717557 375292648 882589615 357691302 956468061 181647548 725684410 746064946 751228098 697047097 880278834 727505077 661978757 955300919 758122803 903302079 950897700 783956747 202299054 38906838 758184337 688493822 798190100 738262989 373637279 501187194 313818972 500614170 22583095 254600040 81...
result:
ok 524288 numbers
Test #2:
score: 0
Accepted
time: 367ms
memory: 130760kb
input:
19 367249149 371654773 612806524 85143906 444570010 814260143 268911024 159227014 54487563 176577835 890074755 614147905 745861895 131560065 544527098 62973049 231942232 691473827 751529607 880993263 98927562 537178388 988998270 879035753 229049001 546651320 497435301 767033665 579462410 226404362 5...
output:
911142043 248183662 71879437 742118276 961480169 806213174 13891593 637072967 404336157 897594321 986917648 472559245 243389874 518388575 570716943 20461212 214047179 918129003 52491516 881194031 74935008 302737295 82747481 187298711 417081789 700811862 468708204 835411352 133728419 280445753 468005...
result:
ok 524288 numbers
Test #3:
score: 0
Accepted
time: 375ms
memory: 130816kb
input:
19 615932645 190043372 535430605 181906837 432498072 413679442 29566740 593061812 488985574 81150900 133120341 801471628 431152426 142547759 448741721 921999626 444025656 850597639 714476646 645838601 340534130 109590898 20701051 985172017 826859167 990919147 99631265 351023843 196254255 512822721 8...
output:
798524062 836708584 11411000 610719566 821627279 424932369 655853799 232647098 793474357 624381502 814438974 359714448 488446738 70477305 273132533 127342891 583872767 56779627 901037664 608474084 950983738 856481429 500010299 932373283 909394121 304336341 56901825 374142368 359527086 106388193 4861...
result:
ok 524288 numbers
Test #4:
score: 0
Accepted
time: 380ms
memory: 130816kb
input:
19 245817417 883778526 432488758 755021884 492424307 52947991 431778541 893408310 329690521 612440312 741654491 524157501 281124503 352705877 417063083 604454041 7083290 954525811 217706893 654073991 448153193 505332760 403115212 596170631 251500337 178830251 782999157 98954798 378314111 589289447 9...
output:
925715523 463396036 253122336 746247174 221952149 512565300 611066319 821263570 902287784 287411386 308151351 205515705 554141360 778108572 974573600 144817013 939149492 286317698 557454987 545029287 134439650 117247639 84955015 853651918 490397108 1321272 319429345 514875499 562207064 426929780 625...
result:
ok 524288 numbers
Test #5:
score: 0
Accepted
time: 366ms
memory: 131016kb
input:
19 222442934 511361881 729631014 497536732 15815890 613229253 526581872 228663305 628368339 871732877 716973286 500910086 153070676 698840833 149263258 3796944 776012857 586365263 106501498 232682928 355438618 168825846 600679155 821769479 675801894 632014633 325220619 364753565 57460713 67701605 72...
output:
263543398 554294060 75268361 182521598 410607509 683272878 516520538 358521099 131126575 81699184 491594980 976469262 657193785 78279772 858961357 330065663 636985422 196845155 864690804 824944812 167791801 287738061 831257179 586790508 927241579 327648132 435981447 770939106 76203884 528027270 6282...
result:
ok 524288 numbers
Test #6:
score: 0
Accepted
time: 369ms
memory: 130760kb
input:
19 982245465 678815919 172958750 498875901 602207465 691745393 929365263 871283007 791476485 834232069 253899427 516528849 146554575 468222411 856822961 743464859 671216538 962486616 777527902 296922236 717800048 577506555 392923028 853962478 528952724 679640374 438099253 32184937 179397659 88030504...
output:
810764882 578933086 543472060 572085649 144510603 385360072 806919436 384263614 179541572 416483376 751052377 707446519 423086649 979387331 336464072 578844005 841096527 316069412 34013586 133423663 777493998 843996707 277243347 62346963 867237256 116350436 754717143 244201317 952285562 571617090 71...
result:
ok 524288 numbers
Test #7:
score: 0
Accepted
time: 377ms
memory: 131032kb
input:
19 934508222 260755822 3524299 151721777 142063333 872188319 623570321 964581305 803430317 246074142 316072350 836947498 590669680 7885046 245723680 640998417 633892017 445601214 293326755 827896644 175644664 327499978 471426780 961594269 292028675 842790900 539142353 315509858 713750057 945952173 6...
output:
48194334 900447933 679266151 885506027 207529011 394620893 10164736 555815552 361665940 125676657 162958644 204992381 876607170 879710069 471545257 458618045 491953862 537399512 919984618 535823821 743245956 817593986 181282112 750180006 220336903 844003501 351305050 637047503 822074137 241848190 46...
result:
ok 524288 numbers
Test #8:
score: 0
Accepted
time: 378ms
memory: 130748kb
input:
19 46801055 613215314 305240996 750409146 262853019 398577491 446698060 104929123 421751826 736235182 610663552 983957423 989867018 644201263 961288295 84307524 514175191 822546656 52322975 314816436 2701910 148390555 467825444 936502279 793664514 869188642 313585466 226426540 628882505 122217250 37...
output:
824362594 465915290 912962712 190820933 52532657 470269427 142908917 201974871 404430544 518799957 62674408 314866426 143198501 408206385 828577782 759468832 840539448 213674026 696214888 225780684 625833503 742551219 413416408 607477562 13795105 204681784 838471403 551237637 730876333 598967471 444...
result:
ok 524288 numbers
Test #9:
score: 0
Accepted
time: 392ms
memory: 130772kb
input:
19 250153981 582575310 44878323 292191195 506329440 801231842 170499669 976141540 213796831 645510659 291273604 848779769 663441878 212414309 701496649 184902147 657021163 951776358 976601588 499383637 315196460 575259820 923916008 589050926 799455907 408661277 101924263 965992475 51641616 254359788...
output:
829157265 283660975 202484620 752931196 748529299 771211480 373213058 117759458 350677948 303658908 171801260 988253047 344927824 613152758 479954516 264498973 27229660 517656912 638230667 131024292 525326774 778119748 333110250 743293560 205876626 935518761 978245409 311081547 634856571 154407433 8...
result:
ok 524288 numbers
Test #10:
score: 0
Accepted
time: 383ms
memory: 130728kb
input:
19 415466891 595464312 122206640 601450584 60514242 66667614 734636982 307907841 275892141 804916803 367904061 885408918 917217487 31521306 774952123 63403999 844256072 778305913 558237134 482228608 224823338 811589615 554979379 90852860 637997152 938642239 403976153 468893520 666088689 421572577 30...
output:
53788882 629886811 87708407 493557566 825379173 477864620 503163123 750876731 943144563 411402881 450863727 587764002 595396313 541606359 920842076 130600921 591143326 481908500 345865936 602836982 332235812 926640713 827955399 510584984 918632480 292514147 395659129 322618659 740086124 613809597 28...
result:
ok 524288 numbers