QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#307890 | #8017. 计算 | zjy0001 | 40 | 44ms | 47456kb | C++14 | 1.9kb | 2024-01-19 10:59:26 | 2024-01-19 10:59:27 |
Judging History
answer
#include<bits/stdc++.h>
#define LL long long
#define LLL __int128
#define uint unsigned
#define ldb long double
#define uLL unsigned long long
using namespace std;
const int N=1e7+5,P=998244353;
inline int qpow(int x,int y){
int z=1;
for(;y;(y>>=1)&&(x=x*1ll*x%P))
if(y&1)z=z*1ll*x%P;
return z;
}
inline LL F(int m,int a,int b){
if(!a||!b)return 0;
if(m==1)return 1;
if(m==2)return 1ll<<__gcd(a,b);
LL z=1;
for(LL i=__gcd(a,b);i--;)z*=m;
return z;
}
int pn,p[N],vp[N];
int pw1[32768],pw2[32768];
inline int pow2(const int&n){
return 1ll*pw2[n>>15]*pw1[n&32767]%P;
}
inline void init(const int&n){
pw1[0]=pw2[0]=1;
for(int i=1;i<32768;++i)(pw1[i]=pw1[i-1]*2)>=P&&(pw1[i]-=P);
(pw2[1]=pw1[32767]*2)>=P&&(pw2[1]-=P);
for(int i=2;i<32768;++i)pw2[i]=1ll*pw2[i-1]*pw2[1]%P;
for(int i=2;i<=n;++i){
if(!vp[i])vp[i]=i,p[++pn]=i;
for(int j=1,k;j<=pn&&(k=i*p[j])<=n;++j){
vp[k]=p[j];if(i%p[j]==0)break;
}
}
}
int n,m,ans;
vector<pair<int,int>>D;
inline void solve(int x,int g,int h){
if(x>=D.size())return ans=(ans+1ll*h*pow2(1ll*n*m/g%(P-1)))%P,void();
solve(x+1,g,h),solve(x+1,g*=D[x].first,h*=D[x].first-1);
for(int i=D[x].second-2;i>0;--i)solve(x+1,g*=D[x].first,h*=D[x].first);
}
inline void MAIN(){
int a,b,c,d;
cin>>m>>a>>b>>c>>d,D.clear(),ans=0;
n=(F(m,c,d)-F(m,a,b))/m%P;
for(int x=m>>__builtin_ctz(m);x>1;){
int y=vp[x];
x/=y,D.emplace_back(y,1);
while(x%y==0)x/=y,++D.back().second;
}
solve(0,1,1),cout<<1ll*ans*qpow(m,P-2)%P<<'\n';
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
#define LOCAL
#ifndef LOCAL
freopen("calculate.in","r",stdin);
freopen("calculate.out","w",stdout);
#endif
init(1e7);
int t=1;cin>>t;while(t--)MAIN();
return 0;
}
/*
*/
詳細信息
Test #1:
score: 5
Accepted
time: 41ms
memory: 47152kb
input:
1 2 0 0 1 1
output:
2
result:
ok 1 number(s): "2"
Test #2:
score: 0
Wrong Answer
time: 39ms
memory: 45488kb
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:
731703617 36583482 921758136 200585229 696225147 331869828 843112918 189633378 490053994 978650670 950509833 225717020 779036669 164792022 100336162 346004888 932593641 884032378 29222670 453053223 943676688 428841976 841413203 179961669 729357055 684325623 737411410 914193717 568399251 804543195 82...
result:
wrong answer 5th numbers differ - expected: '775628782', found: '696225147'
Test #3:
score: 0
Wrong Answer
time: 43ms
memory: 47372kb
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:
255347738 647570858 305733932 883401245 147308187 569555969 729058082 139049435 804375441 994579501 600632128 232637115 536984567 715981463 800179714 95753737 808296443 716252001 232991119 473122601 268629101 318492550 119201215 465578518 536636991 792530766 942591036 606686968 163626491 161188224 5...
result:
wrong answer 6th numbers differ - expected: '159117024', found: '569555969'
Test #4:
score: 0
Wrong Answer
time: 44ms
memory: 45680kb
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:
556751174 240400127 382190642 647699394 78956219 955030901 313591644 369578586 542007033 718615934 532890749 962931672 484395929 942407729 351180331 530343965 113714066 481039470 621185747 826179506 795259277 242164983 549242810 136309187 253325940 944268190 517220798 184107484 362336723 376057449 3...
result:
wrong answer 2nd numbers differ - expected: '199156261', found: '240400127'
Test #5:
score: 5
Accepted
time: 36ms
memory: 45912kb
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: 34ms
memory: 47364kb
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:
936920510 487933114 936920510 919504178 296665006
result:
wrong answer 1st numbers differ - expected: '8581218', found: '936920510'
Test #7:
score: 5
Accepted
time: 43ms
memory: 46572kb
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 706112470 706112470 856358531
result:
ok 5 number(s): "336307822 997249957 706112470 706112470 856358531"
Test #8:
score: 5
Accepted
time: 40ms
memory: 45660kb
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 706112470 706112470 811628181
result:
ok 5 number(s): "336848941 997249957 706112470 706112470 811628181"
Test #9:
score: 5
Accepted
time: 27ms
memory: 47412kb
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: 5
Accepted
time: 29ms
memory: 46320kb
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:
413751362 582959663 739853128 394067700 460843296
result:
ok 5 number(s): "413751362 582959663 739853128 394067700 460843296"
Test #11:
score: 5
Accepted
time: 30ms
memory: 46004kb
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:
329246322 961491285 986208581 755475251 582959663
result:
ok 5 number(s): "329246322 961491285 986208581 755475251 582959663"
Test #12:
score: 5
Accepted
time: 31ms
memory: 46704kb
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: 33ms
memory: 46428kb
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:
328941869 478932381 747112097 661007279 976314229
result:
wrong answer 1st numbers differ - expected: '825344814', found: '328941869'
Test #14:
score: 0
Wrong Answer
time: 38ms
memory: 46960kb
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:
266988781 981050840 954379904 770180202 156716398
result:
wrong answer 1st numbers differ - expected: '733422553', found: '266988781'
Test #15:
score: 0
Wrong Answer
time: 36ms
memory: 46984kb
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:
820673187 32782933 597760398 82259018 441787382
result:
wrong answer 1st numbers differ - expected: '919146531', found: '820673187'
Test #16:
score: 0
Wrong Answer
time: 36ms
memory: 47312kb
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:
387943658 963231926 113852159 125478557 124413987
result:
wrong answer 1st numbers differ - expected: '396457042', found: '387943658'
Test #17:
score: 0
Wrong Answer
time: 40ms
memory: 47456kb
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:
229812033 575752100 655314908 719711475 317160995
result:
wrong answer 1st numbers differ - expected: '263714877', found: '229812033'
Test #18:
score: 0
Wrong Answer
time: 36ms
memory: 46728kb
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:
893240463 464071122 465528856 319579594 631176042
result:
wrong answer 1st numbers differ - expected: '625186250', found: '893240463'
Test #19:
score: 0
Wrong Answer
time: 36ms
memory: 46484kb
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:
617104700 561122137 62084799 173911807 192304620
result:
wrong answer 1st numbers differ - expected: '962318822', found: '617104700'
Test #20:
score: 0
Wrong Answer
time: 35ms
memory: 46808kb
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:
430465329 749650513 546138360 595943117 455934379
result:
wrong answer 1st numbers differ - expected: '896071730', found: '430465329'