QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#282915 | #7746. Go go Baron Bunny! | grass8cow | AC ✓ | 110ms | 121832kb | C++17 | 1.3kb | 2023-12-13 14:27:57 | 2023-12-13 14:27:57 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,s,t;int h;
const int mod=998244353,inv2=(mod+1)/2;
int qpow(int a,int b){
int c=1;
for(;b;b>>=1){
if(b&1)c=1ll*a*c%mod;
a=1ll*a*a%mod;
}
return c;
}
const int N=1e7;
int jc[10010000],ij[10100000],i2[10100000];
void sieve(){
jc[0]=i2[0]=1;
for(int i=1;i<=N;i++)jc[i]=1ll*i*jc[i-1]%mod,i2[i]=1ll*inv2*i2[i-1]%mod;
ij[N]=qpow(jc[N],mod-2);
for(int i=N;i;i--)ij[i-1]=1ll*i*ij[i]%mod;
}
int C(int a,int b){if(a<b)return 0;return 1ll*jc[a]*ij[b]%mod*ij[a-b]%mod;}
int P(int a,int b){return C(a-1,b-1);}
int main(){
sieve();
scanf("%lld%lld%lld",&s,&n,&t);
ll zg=0;h=0;
while(zg<s)h++,zg+=h;
if(zg==s){puts((n==h)?"1":"0");return 0;}
zg-=h,s-=zg;
t=__gcd(t,1ll*h);
if(h!=n&&h-1!=n){puts("0");return 0;}
if(s%(h/t)){puts("0");return 0;}
s/=(h/t);//长度为t的周期,每个周期需有s个1
if(s>t){puts("0");return 0;}
int ans=0;
for(int l=0;l<2;l++)if(l==((h-n)^1)){
for(int o=2;o<=t;o++){
if(l)(ans+=1ll*P(s,(o+1)/2)*P(t-s,o/2)%mod*i2[(h/t)*(o/2)]%mod)%=mod;
else{
if(o&1)(ans+=1ll*P(s,o/2)*P(t-s,(o+1)/2)%mod*i2[(h/t)*(o/2)]%mod)%=mod;
else (ans+=1ll*P(s,o/2)*P(t-s,(o+1)/2)%mod*i2[(h/t)*(o/2)-1]%mod)%=mod;
}
}
}
return printf("%lld",(1ll*ans*jc[n]%mod+mod)%mod),0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 81ms
memory: 121436kb
input:
2 1 2
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 93ms
memory: 121432kb
input:
8 4 2
output:
6
result:
ok 1 number(s): "6"
Test #3:
score: 0
Accepted
time: 92ms
memory: 121036kb
input:
29 7 154
output:
0
result:
ok 1 number(s): "0"
Test #4:
score: 0
Accepted
time: 100ms
memory: 121136kb
input:
50 10 10
output:
77225400
result:
ok 1 number(s): "77225400"
Test #5:
score: 0
Accepted
time: 83ms
memory: 121268kb
input:
50 9 10
output:
11362680
result:
ok 1 number(s): "11362680"
Test #6:
score: 0
Accepted
time: 84ms
memory: 121092kb
input:
2 1 1
output:
0
result:
ok 1 number(s): "0"
Test #7:
score: 0
Accepted
time: 96ms
memory: 121172kb
input:
20 6 15
output:
0
result:
ok 1 number(s): "0"
Test #8:
score: 0
Accepted
time: 81ms
memory: 121016kb
input:
31 7 62
output:
0
result:
ok 1 number(s): "0"
Test #9:
score: 0
Accepted
time: 88ms
memory: 121308kb
input:
1 1 1
output:
1
result:
ok 1 number(s): "1"
Test #10:
score: 0
Accepted
time: 89ms
memory: 120956kb
input:
1 1 1000000000000
output:
1
result:
ok 1 number(s): "1"
Test #11:
score: 0
Accepted
time: 84ms
memory: 121276kb
input:
1000000 1414 999999999292
output:
626239238
result:
ok 1 number(s): "626239238"
Test #12:
score: 0
Accepted
time: 76ms
memory: 121116kb
input:
1000000 1413 999999999292
output:
804023673
result:
ok 1 number(s): "804023673"
Test #13:
score: 0
Accepted
time: 72ms
memory: 121268kb
input:
637704 1129 999999999368
output:
376288586
result:
ok 1 number(s): "376288586"
Test #14:
score: 0
Accepted
time: 84ms
memory: 121824kb
input:
777711 1246 999999999893
output:
315967293
result:
ok 1 number(s): "315967293"
Test #15:
score: 0
Accepted
time: 97ms
memory: 121292kb
input:
738077 1215 999999999405
output:
481429116
result:
ok 1 number(s): "481429116"
Test #16:
score: 0
Accepted
time: 77ms
memory: 121456kb
input:
878084 1324 999999999825
output:
85615210
result:
ok 1 number(s): "85615210"
Test #17:
score: 0
Accepted
time: 70ms
memory: 121592kb
input:
879744 1326 999999998712
output:
826681339
result:
ok 1 number(s): "826681339"
Test #18:
score: 0
Accepted
time: 89ms
memory: 121524kb
input:
519750 1019 999999999120
output:
380025867
result:
ok 1 number(s): "380025867"
Test #19:
score: 0
Accepted
time: 84ms
memory: 121536kb
input:
521410 1021 999999999509
output:
43307492
result:
ok 1 number(s): "43307492"
Test #20:
score: 0
Accepted
time: 88ms
memory: 121212kb
input:
578829 1075 999999999204
output:
847975635
result:
ok 1 number(s): "847975635"
Test #21:
score: 0
Accepted
time: 81ms
memory: 121240kb
input:
580490 1077 3
output:
0
result:
ok 1 number(s): "0"
Test #22:
score: 0
Accepted
time: 97ms
memory: 121412kb
input:
720496 1199 240
output:
0
result:
ok 1 number(s): "0"
Test #23:
score: 0
Accepted
time: 74ms
memory: 121832kb
input:
722157 1202 601
output:
952370308
result:
ok 1 number(s): "952370308"
Test #24:
score: 0
Accepted
time: 97ms
memory: 121824kb
input:
862163 1312 1313
output:
626393445
result:
ok 1 number(s): "626393445"
Test #25:
score: 0
Accepted
time: 85ms
memory: 121596kb
input:
822530 1283 1
output:
0
result:
ok 1 number(s): "0"
Test #26:
score: 0
Accepted
time: 88ms
memory: 121480kb
input:
962536 1386 1
output:
0
result:
ok 1 number(s): "0"
Test #27:
score: 0
Accepted
time: 88ms
memory: 121404kb
input:
1000000 1412 999999999292
output:
0
result:
ok 1 number(s): "0"
Test #28:
score: 0
Accepted
time: 75ms
memory: 121788kb
input:
1000000000 44721 999999975339
output:
510734471
result:
ok 1 number(s): "510734471"
Test #29:
score: 0
Accepted
time: 80ms
memory: 121700kb
input:
1000000000 44720 999999975339
output:
848193647
result:
ok 1 number(s): "848193647"
Test #30:
score: 0
Accepted
time: 89ms
memory: 121604kb
input:
842907373 41059 999999992564
output:
372008876
result:
ok 1 number(s): "372008876"
Test #31:
score: 0
Accepted
time: 77ms
memory: 121540kb
input:
509306715 31915 999999995252
output:
449159217
result:
ok 1 number(s): "449159217"
Test #32:
score: 0
Accepted
time: 80ms
memory: 121600kb
input:
724371023 38062 999999995226
output:
184015087
result:
ok 1 number(s): "184015087"
Test #33:
score: 0
Accepted
time: 80ms
memory: 121664kb
input:
890770366 42207 999999997728
output:
181797941
result:
ok 1 number(s): "181797941"
Test #34:
score: 0
Accepted
time: 94ms
memory: 121596kb
input:
900801961 42445 999999997945
output:
723246071
result:
ok 1 number(s): "723246071"
Test #35:
score: 0
Accepted
time: 84ms
memory: 121468kb
input:
567201303 33680 999999971049
output:
976667605
result:
ok 1 number(s): "976667605"
Test #36:
score: 0
Accepted
time: 96ms
memory: 121424kb
input:
782265611 39554 999999995722
output:
382214761
result:
ok 1 number(s): "382214761"
Test #37:
score: 0
Accepted
time: 84ms
memory: 121528kb
input:
743632241 38564 999999975555
output:
622113251
result:
ok 1 number(s): "622113251"
Test #38:
score: 0
Accepted
time: 87ms
memory: 121164kb
input:
753663836 38824 2
output:
0
result:
ok 1 number(s): "0"
Test #39:
score: 0
Accepted
time: 76ms
memory: 121568kb
input:
920063179 42896 181
output:
0
result:
ok 1 number(s): "0"
Test #40:
score: 0
Accepted
time: 83ms
memory: 121032kb
input:
635127486 35641 29
output:
0
result:
ok 1 number(s): "0"
Test #41:
score: 0
Accepted
time: 88ms
memory: 121552kb
input:
801526829 40037 40038
output:
966008245
result:
ok 1 number(s): "966008245"
Test #42:
score: 0
Accepted
time: 88ms
memory: 121640kb
input:
811558424 40288 4
output:
0
result:
ok 1 number(s): "0"
Test #43:
score: 0
Accepted
time: 92ms
memory: 121016kb
input:
977957767 44225 1134
output:
0
result:
ok 1 number(s): "0"
Test #44:
score: 0
Accepted
time: 96ms
memory: 121484kb
input:
1000000000 44719 999999975339
output:
0
result:
ok 1 number(s): "0"
Test #45:
score: 0
Accepted
time: 94ms
memory: 121676kb
input:
1000000000000 1414214 999999204684
output:
486279705
result:
ok 1 number(s): "486279705"
Test #46:
score: 0
Accepted
time: 104ms
memory: 121640kb
input:
1000000000000 1414213 999999204684
output:
480189439
result:
ok 1 number(s): "480189439"
Test #47:
score: 0
Accepted
time: 89ms
memory: 121344kb
input:
815496560693 811750096047 999999745266
output:
0
result:
ok 1 number(s): "0"
Test #48:
score: 0
Accepted
time: 84ms
memory: 121288kb
input:
582297122576 579821664123 999999766452
output:
0
result:
ok 1 number(s): "0"
Test #49:
score: 0
Accepted
time: 93ms
memory: 121444kb
input:
554379675168 1052976 999999724464
output:
850999094
result:
ok 1 number(s): "850999094"
Test #50:
score: 0
Accepted
time: 94ms
memory: 121540kb
input:
825475204348 1284892 999998814682
output:
718965161
result:
ok 1 number(s): "718965161"
Test #51:
score: 0
Accepted
time: 99ms
memory: 121572kb
input:
801852724236 1266375 999999350625
output:
266617066
result:
ok 1 number(s): "266617066"
Test #52:
score: 0
Accepted
time: 103ms
memory: 121664kb
input:
568653286119 1066445 999998949078
output:
268095321
result:
ok 1 number(s): "268095321"
Test #53:
score: 0
Accepted
time: 106ms
memory: 121824kb
input:
540735838711 1039938 999999181110
output:
955131707
result:
ok 1 number(s): "955131707"
Test #54:
score: 0
Accepted
time: 110ms
memory: 121528kb
input:
807536400595 1270854 999998944705
output:
83358005
result:
ok 1 number(s): "83358005"
Test #55:
score: 0
Accepted
time: 97ms
memory: 121432kb
input:
779618953187 1248694 624347
output:
695027909
result:
ok 1 number(s): "695027909"
Test #56:
score: 0
Accepted
time: 88ms
memory: 121636kb
input:
546419515070 1045388 1
output:
0
result:
ok 1 number(s): "0"
Test #57:
score: 0
Accepted
time: 88ms
memory: 121608kb
input:
527092002255 1026735 342245
output:
168868859
result:
ok 1 number(s): "168868859"
Test #58:
score: 0
Accepted
time: 92ms
memory: 121204kb
input:
793892564138 1260072 1
output:
0
result:
ok 1 number(s): "0"
Test #59:
score: 0
Accepted
time: 73ms
memory: 121596kb
input:
765975116731 1237720 44
output:
0
result:
ok 1 number(s): "0"
Test #60:
score: 0
Accepted
time: 84ms
memory: 121472kb
input:
532775678613 1032254 11865
output:
0
result:
ok 1 number(s): "0"
Test #61:
score: 0
Accepted
time: 90ms
memory: 121596kb
input:
1000000000000 1414212 999999204684
output:
0
result:
ok 1 number(s): "0"
Extra Test:
score: 0
Extra Test Passed