QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#473554#1002. 快速 OR 卷积Wuyanru#100 ✓20ms10700kbC++14943b2024-07-12 09:42:122024-07-12 09:42:12

Judging History

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

  • [2024-07-12 09:42:12]
  • 评测
  • 测评结果:100
  • 用时:20ms
  • 内存:10700kb
  • [2024-07-12 09:42:12]
  • 提交

answer

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f3f3f3f3fll
#define debug(x) cerr<<#x<<"="<<x<<endl
using namespace std;
using ll=long long;
using ld=long double;
using pli=pair<ll,int>;
using pi=pair<int,int>;
template<typename A>
using vc=vector<A>;
inline int read()
{
	int s=0,w=1;char ch;
	while((ch=getchar())>'9'||ch<'0') if(ch=='-') w=-1;
	while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
	return s*w;
}
const int mod=998244353;
ll f[1048576];
ll g[1048576];
int n;
inline void FMT(ll *f,bool fmt=true)
{
	for(int j=0;j<n;j++) for(int i=0;i<(1<<n);i++) if(i&(1<<j))
	{
		if(fmt) f[i]=(f[i]+f[i^(1<<j)])%mod;
		else f[i]=(f[i]-f[i^(1<<j)]+mod)%mod;
	}
}
int main()
{
	n=read();
	for(int i=0;i<(1<<n);i++) f[i]=read();
	for(int i=0;i<(1<<n);i++) g[i]=read();
	FMT(f),FMT(g);
	for(int i=0;i<(1<<n);i++) f[i]=f[i]*g[i]%mod;
	FMT(f,false);
	for(int i=0;i<(1<<n);i++) printf("%lld ",f[i]);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 10
Accepted
time: 20ms
memory: 6824kb

input:

17
124509 43148 30036 427 97271 60489 64241 76825 4009 76967 84571 117325 73241 90178 5186 80520 93883 79481 2509 39860 126174 45713 73401 8180 94887 40378 121436 17363 74917 88371 16053 94054 114520 120062 76983 81923 22314 14501 21964 76249 108362 68265 31494 67029 71536 60341 126629 6371 12896 75...

output:

332271930 667780257 165371735 944741494 541193760 60819242 388772827 806098677 917577552 616874696 473878514 24257510 729130827 541958215 345089469 751619027 791030961 768536204 510057884 568583644 169371348 329172153 860962430 617638071 934927204 164895278 316656065 532761770 414433832 800892069 66...

result:

ok 131072 numbers

Test #2:

score: 10
Accepted
time: 16ms
memory: 10580kb

input:

17
36752 91405 113178 66785 57776 27049 14105 50816 126428 71672 64143 39460 38197 55537 64791 57136 77167 24441 17208 72914 103566 12433 95292 99400 72931 87413 42219 121505 2215 35098 74285 122864 61392 104564 81396 8263 27479 121109 26059 16264 7129 40833 85331 26854 82091 81584 4163 120393 12616...

output:

939371310 149333873 587178446 825853712 537141249 124155102 48912865 93006905 857153769 306076077 793447870 483847580 71004984 628668155 607757259 982619397 400224969 943044827 407529823 22606386 45050945 76695773 812465366 817818619 549714008 59549137 864285136 868217575 388615863 21889550 28486243...

result:

ok 131072 numbers

Test #3:

score: 10
Accepted
time: 19ms
memory: 6868kb

input:

17
96034 106604 12109 32979 121185 53439 36655 24610 8941 122660 57077 60257 15660 77565 62143 92979 94478 62819 65184 49982 80233 117829 116981 89699 56220 22561 92042 72394 7246 52764 106590 94799 1199 5015 48737 86905 98879 98030 17044 52804 3814 61592 127881 87386 68041 114929 24849 88708 110931...

output:

36312323 136266769 388804901 729829153 670129105 55969553 866313155 373129528 315600479 798117353 633554607 91786773 937791571 288664632 597923432 221508999 830904670 185125646 271486775 170104650 868489867 720669656 356613770 842058155 919644426 359751798 635677011 139273418 122664237 434248213 589...

result:

ok 131072 numbers

Test #4:

score: 10
Accepted
time: 12ms
memory: 10700kb

input:

17
121871 110308 120518 8665 22228 94745 92246 64093 93667 117841 100636 17150 75897 14703 116965 108907 124221 108924 94240 121613 3258 16064 12136 84580 88087 57894 114009 73555 38433 114752 88289 80539 73456 40303 75594 52079 52412 14784 89880 38237 61760 126768 91685 67388 40707 127457 63803 111...

output:

912218547 871072809 636392703 585179604 533706087 409870669 347697980 480795031 403024111 781289821 302698304 364913633 227664261 257683313 941445918 24251527 977254370 452754418 535927544 42990609 328533794 386498269 698486057 450103307 435394493 5910871 771324352 537279549 189288366 35024462 48472...

result:

ok 131072 numbers

Test #5:

score: 10
Accepted
time: 16ms
memory: 10440kb

input:

17
35951 130793 107125 57211 73996 78374 83006 49577 24571 106953 21342 119979 68979 100154 92448 110792 115652 66102 23377 112025 35255 4627 5996 23414 75844 14817 130314 19849 30706 114143 105946 122979 44595 532 124693 82679 107873 87080 45941 68218 15412 98405 118030 28481 43193 25345 91548 4780...

output:

568284521 728117622 133739795 53240563 322253966 944216949 156214966 677841365 647707101 582810206 144003878 861166195 121466046 671288104 760650303 837116747 226581420 290829299 91883355 816143112 183565226 78573937 716050667 645655138 760754922 571950962 644604944 401862830 853003498 196203140 687...

result:

ok 131072 numbers

Test #6:

score: 10
Accepted
time: 19ms
memory: 10560kb

input:

17
102591 40347 108824 81303 56176 57940 57716 37113 59294 44350 48146 91881 54254 26028 61016 35513 92934 76275 50633 124430 65828 70491 38696 31954 47620 127680 49288 54187 74475 25182 12525 72036 108877 128567 103517 72538 100254 112886 18584 128727 36527 97554 21037 119327 87995 18618 96812 5238...

output:

985250863 538558988 260054259 436348331 924703113 774735602 106570779 529389582 600769592 806883331 654173432 187096271 756178561 375048444 380978504 220638338 80462801 431688569 196200955 160280657 79753806 975811691 293589231 584187045 537391921 238716529 792588315 42527357 996518662 549078028 832...

result:

ok 131072 numbers

Test #7:

score: 10
Accepted
time: 15ms
memory: 6952kb

input:

17
127428 85865 116777 3459 124929 87421 30366 82767 112747 68307 65862 125284 10690 50350 111307 28547 96969 125267 101936 13988 59089 88548 56409 38660 41030 46677 53847 85569 61935 114561 49594 123862 11091 13304 37157 80751 60871 55454 112612 19613 58288 73159 114113 51825 95859 35778 90613 1231...

output:

462479512 961471405 771729412 920957877 863153366 223981761 4605935 330978505 78099483 980195979 671065103 72006898 969621659 343849138 69488185 219079434 853848750 181984167 689692238 143575449 762894360 464966336 494752517 532472028 530553052 585243596 716965596 372217083 956701430 486576776 27243...

result:

ok 131072 numbers

Test #8:

score: 10
Accepted
time: 15ms
memory: 6864kb

input:

17
35580 34314 94720 81972 65872 60570 23597 73880 66667 109478 88323 125759 97368 56941 51355 44963 101929 12700 119668 48282 102293 101880 43175 60318 63219 92752 65135 73263 23634 59482 36643 121393 17810 21130 127704 23292 20298 76577 1179 93497 1550 80965 40786 8552 42883 25829 36556 100477 900...

output:

118445781 59446522 851821806 393415259 36135337 139036293 256687205 746321642 414021002 845022317 622652352 161771926 186937491 949166338 279376161 844871905 293917373 989365073 225065990 66576171 165437622 85537306 68530516 388786497 742829497 152022706 76982459 89457527 706877256 912238444 3256677...

result:

ok 131072 numbers

Test #9:

score: 10
Accepted
time: 13ms
memory: 6884kb

input:

17
104562 89771 86105 12783 47137 87255 117319 120507 87279 38277 108372 43088 125402 106080 81047 100869 18195 88890 46861 85140 93579 60981 58949 48700 59165 67346 20782 5743 2412 98256 106076 22120 78853 11669 10065 104043 35096 8637 88493 55579 9440 109609 58792 110019 26451 21305 94103 78654 11...

output:

501392912 629873495 69684616 418531308 867820995 928467117 568874196 156918 380600443 762244520 361863025 758074527 490630157 407208874 419870779 522288613 625350500 956627357 635171048 650245285 612433119 2976546 784823556 975139355 884141115 452654220 415380948 1799698 443879883 329518250 11183394...

result:

ok 131072 numbers

Test #10:

score: 10
Accepted
time: 19ms
memory: 6880kb

input:

17
90819 29573 128897 44256 58993 15984 19251 62716 5081 68339 42457 32799 120123 46259 3336 117200 54420 91611 21887 112785 6579 98799 15069 36175 8672 25819 27479 98062 100264 80008 27878 118935 14272 42304 39739 36143 128188 15189 71608 22551 115811 29743 6041 39766 117568 56307 87897 29118 22421...

output:

858793301 994685133 722674719 485964251 720997810 444135378 705257132 683181144 584928328 29250485 991801266 430765524 188887907 871096011 718607664 768629353 589676607 954366998 929523570 301388929 902808322 632621358 384864927 571542618 917434949 114578771 725725656 19295164 395715783 458332680 39...

result:

ok 131072 numbers