QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#397291#8017. 计算NKheyuxiang20 132ms55376kbC++141007b2024-04-23 21:30:062024-04-23 21:30:06

Judging History

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

  • [2024-04-23 21:30:06]
  • 评测
  • 测评结果:20
  • 用时:132ms
  • 内存:55376kb
  • [2024-04-23 21:30:06]
  • 提交

answer

#include<bits/stdc++.h>
#define N 10000000
#define mod 998244353
using namespace std;
int power(int x,int y){
	int res=1;
	while(y){
		if(y&1) res=1ll*res*x%mod;
		x=1ll*x*x%mod;
		y=y/2;
	}
	return res;
}
int phi[N+5],p[1000005],cp;
bool bl[N+5];
void init(){
	phi[1]=1;
	for(int i=2;i<=N;i++){
		if(!bl[i]) p[++cp]=i,phi[i]=i-1;
		for(int j=1;j<=cp&&p[j]*i<=N;j++){
			bl[i*p[j]]=1;
			if(i%p[j]==0){
				phi[i*p[j]]=phi[i]*p[j];
				break;
			}
			phi[i*p[j]]=phi[i]*(p[j]-1);
		}
	}
}
int t,m,a,b,c,d,ans;
long long L,R,n;
int main(){
	init();
	scanf("%d",&t);
	while(t--){
		scanf("%d%d%d%d%d",&m,&a,&b,&c,&d);
		L=(a==0||b==0)?0:power(m,__gcd(a,b));
		R=(c==0||d==0)?0:power(m,__gcd(c,d));
		n=R-L;ans=0;
		int u=m;
		while(u%2==0) u/=2;
		for(int i=1;i*i<=u;i++){
			if(m%i==0){
				ans=(ans+1ll*power(2,n/u*i)*phi[u/i])%mod;
				if(i*i!=u) ans=(ans+1ll*power(2,n/i)*phi[i])%mod;
			}
		} 
		ans=1ll*ans*power(m,mod-2)%mod;
		printf("%d\n",ans);
	}
}

詳細信息

Test #1:

score: 5
Accepted
time: 67ms
memory: 55188kb

input:

1
2 0 0 1 1

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 0
Wrong Answer
time: 132ms
memory: 55268kb

input:

10000
9026580 948 269 622 88
9346507 381 242 826 606
9266080 948 589 28 666
8566088 808 523 402 338
9832014 278 123 146 1000
8000150 613 878 146 740
8296526 404 147 608 398
9062880 494 203 336 382
9375271 823 736 54 676
8465119 505 414 874 772
9535971 784 983 426 802
8258325 817 977 172 862
9656017 ...

output:

721075020
69154119
971907215
942595789
575926994
244809847
907946711
139825236
230035443
555353002
151829069
656462783
272256896
878314690
133863370
169466853
427566165
73460172
847620711
454114465
936764929
326869551
314657769
393412475
83578016
178193691
731633906
814736683
452139582
766173638
432...

result:

wrong answer 1st numbers differ - expected: '731703617', found: '721075020'

Test #3:

score: 0
Wrong Answer
time: 130ms
memory: 55340kb

input:

10000
9060194 192 71 24 178
8861291 135 338 24 794
8800613 173 760 704 362
9878509 367 418 58 964
8183946 856 951 406 316
8087229 458 105 770 342
8269502 205 147 614 334
8877019 851 143 206 10
9044859 710 949 210 584
8887395 571 856 550 428
8208494 383 628 74 646
9949585 697 450 794 738
9938335 224 ...

output:

957754633
900131195
233960077
564401943
463166380
70724440
300358407
734263886
702915805
384854709
872621769
882099237
667452843
879402574
378827798
327223933
705139396
61777573
155601554
158255732
627860535
123637611
330658101
727968970
710521549
808641440
631535347
577326869
249810439
308999930
61...

result:

wrong answer 1st numbers differ - expected: '255347738', found: '957754633'

Test #4:

score: 0
Wrong Answer
time: 124ms
memory: 55188kb

input:

10000
9110615 854 153 494 298
9386442 749 922 386 696
9270958 160 53 630 562
9643022 573 997 226 836
9824638 357 16 34 332
9962202 439 312 40 854
8974913 815 436 710 876
9362731 411 272 998 760
9814831 220 961 962 274
9310979 19 890 782 588
9425378 897 14 212 870
9572172 430 419 334 166
9101141 565 ...

output:

495319995
278040140
497883207
519692628
496527382
567686964
900355070
639193232
856908420
251251141
126295736
409395406
693169510
805696109
126154110
859431362
683973768
713066770
771378474
877997764
560605650
218186695
111606537
664791302
120732943
806315251
498834071
616888031
210500985
951568781
...

result:

wrong answer 1st numbers differ - expected: '556751174', found: '495319995'

Test #5:

score: 5
Accepted
time: 59ms
memory: 55196kb

input:

4
3 4 5 6 1
2 6 1 8 10
4 1 4 2 2
5 0 10 2 10

output:

1
2
1024
6710912

result:

ok 4 number(s): "1 2 1024 6710912"

Test #6:

score: 0
Wrong Answer
time: 58ms
memory: 55376kb

input:

5
18 10 9 4 6
14 7 4 4 6
18 6 5 8 2
12 5 2 4 10
11 5 6 2 6

output:

769286067
507098274
769286067
919504178
296665006

result:

wrong answer 1st numbers differ - expected: '8581218', found: '769286067'

Test #7:

score: 0
Wrong Answer
time: 61ms
memory: 55316kb

input:

5
11 9 5 3 3
12 8 9 9 6
10 10 7 3 9
10 5 4 3 6
6 9 6 4 8

output:

336307822
997249957
786315294
786315294
856358531

result:

wrong answer 3rd numbers differ - expected: '706112470', found: '786315294'

Test #8:

score: 0
Wrong Answer
time: 62ms
memory: 55352kb

input:

5
4 5 6 5 10
12 8 5 9 3
10 4 9 9 3
10 5 6 6 3
6 5 7 4 8

output:

336848941
997249957
786315294
786315294
811628181

result:

wrong answer 3rd numbers differ - expected: '706112470', found: '786315294'

Test #9:

score: 5
Accepted
time: 64ms
memory: 55268kb

input:

5
11 80 29 27 84
11 31 27 87 6
4 46 54 95 80
6 45 62 88 92
12 70 34 3 75

output:

336307822
336307822
488237375
811628181
306984283

result:

ok 5 number(s): "336307822 336307822 488237375 811628181 306984283"

Test #10:

score: 0
Wrong Answer
time: 54ms
memory: 55232kb

input:

5
58 91 37 75 5
62 99 67 10 75
55 51 92 70 85
55 86 16 50 85
29 54 95 36 78

output:

577880155
584868498
739853128
394067700
460843296

result:

wrong answer 1st numbers differ - expected: '413751362', found: '577880155'

Test #11:

score: 0
Wrong Answer
time: 56ms
memory: 55192kb

input:

5
10 57 94 99 18
19 97 77 63 98
62 44 4 90 35
61 3 54 25 60
62 57 65 95 70

output:

460150081
961491285
328965649
755475251
584868498

result:

wrong answer 1st numbers differ - expected: '329246322', found: '460150081'

Test #12:

score: 5
Accepted
time: 54ms
memory: 55196kb

input:

5
5 0 0 9 5
4 0 0 1 5
2 0 0 7 5
3 0 0 3 7
3 0 0 9 5

output:

8
4
2
4
4

result:

ok 5 number(s): "8 4 2 4 4"

Test #13:

score: 0
Wrong Answer
time: 68ms
memory: 55188kb

input:

5
1931 633 387 65 265
1334 942 887 115 455
1547 511 57 65 920
1815 983 313 575 430
1497 749 773 25 740

output:

443820225
693808686
353695930
566314179
528885496

result:

wrong answer 1st numbers differ - expected: '825344814', found: '443820225'

Test #14:

score: 0
Wrong Answer
time: 60ms
memory: 55272kb

input:

5
1676 347 892 10 545
1552 901 243 595 705
1585 181 32 900 215
1043 147 153 250 195
1343 519 863 610 345

output:

680128702
580051423
231917055
500773530
741049875

result:

wrong answer 1st numbers differ - expected: '733422553', found: '680128702'

Test #15:

score: 0
Wrong Answer
time: 53ms
memory: 55248kb

input:

5
1507 98 480 995 565
1130 476 464 710 925
1556 518 459 65 445
1153 277 530 485 860
1329 191 777 315 905

output:

944537610
53091380
164564897
783608795
170497844

result:

wrong answer 1st numbers differ - expected: '919146531', found: '944537610'

Test #16:

score: 0
Wrong Answer
time: 61ms
memory: 55376kb

input:

5
1260 985 161 855 395
1919 286 557 10 155
1439 586 749 915 730
1297 750 832 245 855
1693 134 289 355 200

output:

910059746
356528534
761605128
48898514
261969883

result:

wrong answer 1st numbers differ - expected: '396457042', found: '910059746'

Test #17:

score: 0
Wrong Answer
time: 60ms
memory: 55272kb

input:

5
95803 976 729 633 237
99669 606 7 489 816
80026 339 914 753 933
97238 844 430 666 537
70169 394 204 411 738

output:

857060368
686804478
916032408
766055604
514867437

result:

wrong answer 1st numbers differ - expected: '263714877', found: '857060368'

Test #18:

score: 0
Wrong Answer
time: 64ms
memory: 55252kb

input:

5
86711 965 851 300 273
97658 466 416 633 603
89583 407 591 411 3
84126 987 514 822 837
79996 9 166 807 15

output:

879620095
469286263
62167695
925346724
200100670

result:

wrong answer 1st numbers differ - expected: '625186250', found: '879620095'

Test #19:

score: 0
Wrong Answer
time: 51ms
memory: 55248kb

input:

5
90325 2 48 195 528
83446 123 809 897 60
92466 526 768 441 447
95582 319 251 843 447
95424 374 218 162 597

output:

723769748
915142280
509620231
879227273
516190367

result:

wrong answer 1st numbers differ - expected: '962318822', found: '723769748'

Test #20:

score: 0
Wrong Answer
time: 58ms
memory: 55344kb

input:

5
80746 952 565 615 192
71949 878 950 357 789
99398 301 646 942 699
94853 670 947 141 276
82409 554 873 375 213

output:

493466847
680434042
216408331
693459230
627757652

result:

wrong answer 1st numbers differ - expected: '896071730', found: '493466847'