QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#32241 | #1816. Multiple Parentheses | Appleblue17 | AC ✓ | 117ms | 109572kb | C++ | 1.1kb | 2022-05-18 10:53:51 | 2022-05-18 10:53:51 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const long long N=6e6+5,mod=998244353,inv2=499122177,g=3;
long long ksm(long long f,long long x){
long long tot=1;
while(x){
if(x & 1ll) tot=1ll*tot*f%mod;
f=1ll*f*f%mod;
x>>=1ll;
}
return tot;
}
long long pr[N];
long long mul[N],inv[N];
void init(long long lim){
for(long long l=1;l<N;l<<=1ll)
pr[l]=ksm(g,(mod-1)/(l*2));
mul[0]=inv[0]=1;
for(long long i=1;i<=lim;i++) mul[i]=1ll*mul[i-1]*i%mod;
inv[lim]=ksm(mul[lim],mod-2);
for(long long i=lim-1;i>=1;i--) inv[i]=1ll*inv[i+1]*(i+1)%mod;
}
long long C(long long m,long long n){
if(m<0 || n<0 || m<n) return 0;
return 1ll*mul[m]*inv[n]%mod*inv[m-n]%mod;
}
long long cal(long long n,long long k){
if(n==0) return 1;
return (C(k-1+2*n,n)+mod-C(k-1+2*n,n-1))%mod;
}
long long ID(long long x){
if(x & 1ll) return mod-1;
return 1;
}
long long n,m,k,ans;
int main(){
init(N-5);
cin>>k>>n>>m;
long long t=(C(2*m,m)+mod-C(2*m,m-1))%mod;
for(int i=0;i<=k && i<=n/m;i++)
ans=(ans+ksm(mod-t,i)*C(k,i)%mod*cal(n-m*i,k-i)%mod)%mod;
cout<<ans;
}
详细
Test #1:
score: 100
Accepted
time: 47ms
memory: 108812kb
input:
2 2 1
output:
4
result:
ok answer is '4'
Test #2:
score: 0
Accepted
time: 70ms
memory: 108892kb
input:
1 1 1
output:
0
result:
ok answer is '0'
Test #3:
score: 0
Accepted
time: 62ms
memory: 108260kb
input:
24 120 30
output:
379268651
result:
ok answer is '379268651'
Test #4:
score: 0
Accepted
time: 49ms
memory: 109524kb
input:
1451 1598 1130
output:
884873572
result:
ok answer is '884873572'
Test #5:
score: 0
Accepted
time: 72ms
memory: 108668kb
input:
1324 1742 1033
output:
856733047
result:
ok answer is '856733047'
Test #6:
score: 0
Accepted
time: 63ms
memory: 109484kb
input:
1378 1614 1335
output:
869903701
result:
ok answer is '869903701'
Test #7:
score: 0
Accepted
time: 58ms
memory: 108408kb
input:
1071 1907 1281
output:
327700529
result:
ok answer is '327700529'
Test #8:
score: 0
Accepted
time: 72ms
memory: 109536kb
input:
1204 1337 1277
output:
475981175
result:
ok answer is '475981175'
Test #9:
score: 0
Accepted
time: 62ms
memory: 108692kb
input:
146 246 100
output:
404402509
result:
ok answer is '404402509'
Test #10:
score: 0
Accepted
time: 84ms
memory: 109344kb
input:
226 183 144
output:
351921989
result:
ok answer is '351921989'
Test #11:
score: 0
Accepted
time: 62ms
memory: 108648kb
input:
234 287 158
output:
658959115
result:
ok answer is '658959115'
Test #12:
score: 0
Accepted
time: 60ms
memory: 108568kb
input:
242 156 122
output:
325586111
result:
ok answer is '325586111'
Test #13:
score: 0
Accepted
time: 59ms
memory: 107700kb
input:
168 271 135
output:
181613866
result:
ok answer is '181613866'
Test #14:
score: 0
Accepted
time: 45ms
memory: 109024kb
input:
22 25 1
output:
684860973
result:
ok answer is '684860973'
Test #15:
score: 0
Accepted
time: 40ms
memory: 109208kb
input:
45 22 15
output:
217501624
result:
ok answer is '217501624'
Test #16:
score: 0
Accepted
time: 71ms
memory: 109036kb
input:
47 29 16
output:
690840771
result:
ok answer is '690840771'
Test #17:
score: 0
Accepted
time: 47ms
memory: 109532kb
input:
2 25 25
output:
660660974
result:
ok answer is '660660974'
Test #18:
score: 0
Accepted
time: 58ms
memory: 108216kb
input:
32 34 11
output:
133387056
result:
ok answer is '133387056'
Test #19:
score: 0
Accepted
time: 51ms
memory: 108848kb
input:
88196 118335 104471
output:
7192211
result:
ok answer is '7192211'
Test #20:
score: 0
Accepted
time: 52ms
memory: 108188kb
input:
142215 57117 51272
output:
627598793
result:
ok answer is '627598793'
Test #21:
score: 0
Accepted
time: 57ms
memory: 108356kb
input:
102255 60360 51525
output:
447649003
result:
ok answer is '447649003'
Test #22:
score: 0
Accepted
time: 49ms
memory: 108740kb
input:
132449 83413 54230
output:
215816803
result:
ok answer is '215816803'
Test #23:
score: 0
Accepted
time: 43ms
memory: 108564kb
input:
68499 95762 77190
output:
393029560
result:
ok answer is '393029560'
Test #24:
score: 0
Accepted
time: 117ms
memory: 108056kb
input:
751951 751951 1
output:
804170883
result:
ok answer is '804170883'
Test #25:
score: 0
Accepted
time: 59ms
memory: 108556kb
input:
804420 1962 410
output:
869056555
result:
ok answer is '869056555'
Test #26:
score: 0
Accepted
time: 62ms
memory: 108832kb
input:
828607 63739 13
output:
926542030
result:
ok answer is '926542030'
Test #27:
score: 0
Accepted
time: 60ms
memory: 109348kb
input:
472167 20529 23
output:
142703540
result:
ok answer is '142703540'
Test #28:
score: 0
Accepted
time: 93ms
memory: 109100kb
input:
363438 363438 1
output:
764563597
result:
ok answer is '764563597'
Test #29:
score: 0
Accepted
time: 66ms
memory: 109372kb
input:
1000000 1000000 628333
output:
283487375
result:
ok answer is '283487375'
Test #30:
score: 0
Accepted
time: 45ms
memory: 109572kb
input:
1000000 1000000 900084
output:
651386967
result:
ok answer is '651386967'
Test #31:
score: 0
Accepted
time: 54ms
memory: 108488kb
input:
1000000 1000000 27328
output:
621963453
result:
ok answer is '621963453'
Test #32:
score: 0
Accepted
time: 51ms
memory: 109360kb
input:
1000000 1000000 538409
output:
997879100
result:
ok answer is '997879100'
Test #33:
score: 0
Accepted
time: 66ms
memory: 109436kb
input:
1000000 1000000 928121
output:
964724707
result:
ok answer is '964724707'
Test #34:
score: 0
Accepted
time: 44ms
memory: 109380kb
input:
685624 665877 563708
output:
257429683
result:
ok answer is '257429683'
Test #35:
score: 0
Accepted
time: 47ms
memory: 109168kb
input:
692290 942095 553970
output:
82511143
result:
ok answer is '82511143'
Test #36:
score: 0
Accepted
time: 54ms
memory: 108424kb
input:
579579 765702 631728
output:
954001361
result:
ok answer is '954001361'
Test #37:
score: 0
Accepted
time: 62ms
memory: 109312kb
input:
756854 634736 567170
output:
393747028
result:
ok answer is '393747028'
Test #38:
score: 0
Accepted
time: 67ms
memory: 109216kb
input:
649175 997874 511181
output:
242172216
result:
ok answer is '242172216'
Test #39:
score: 0
Accepted
time: 53ms
memory: 109440kb
input:
786431 1000000 999999
output:
627359027
result:
ok answer is '627359027'