Educational Codeforces Round 83 (Rated for Div. 2) D. Count the Arrays
程序员文章站
2022-06-04 18:24:35
...
这个大佬说的挺好 来自
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=4e5+7;
const int Mod=998244353;
ll fac[maxn];
ll ifac[maxn];
inline ll quickpow(ll a,ll n){
ll ans=1;
for(;n;n>>=1){
if(n&1) ans=(long long)ans*a%Mod;
a=(long long)a*a%Mod;
}
return ans;
}
inline ll C(ll x,ll y){
if(x<y) return 0;
else return fac[x]*ifac[y]%Mod*ifac[x-y]%Mod;
}
ll ans=0;
int main(){
int n,m;
cin>>n>>m;
if(n==2){
cout<<0<<endl;
return 0;
}
fac[0]=1;
for(int i=1;i<=n+m;i++) fac[i]=fac[i-1]*(ll)i%Mod;
ifac[n+m]=quickpow(fac[n+m],Mod-2);
for(int i=n+m-1;~i;i--) ifac[i]=ifac[i+1]*(ll)(i+1)%Mod;
ans=C(m,n-1)*(n-2)%Mod;
ans=ans*quickpow(2,n-3)%Mod;
cout<<ans<<endl;
return 0;
}
推荐阅读
-
Educational Codeforces Round 71 (Rated for Div. 2)E. XOR Guessing
-
Educational Codeforces Round 97 (Rated for Div. 2) D. Minimal Height Tree
-
Educational Codeforces Round 60 (Rated for Div. 2) ----A - Best Subsegment(思维题)
-
Educational Codeforces Round 85 (Rated for Div. 2) C. Circle of Monsters(前缀和 预处理 贪心)
-
Educational Codeforces Round 98 (Rated for Div. 2) A-E 题解
-
Educational Codeforces Round 93 (Rated for Div. 2) A. Bad Triangle
-
Educational Codeforces Round 93 (Rated for Div. 2) B - Substring Removal Game
-
Educational Codeforces Round 99 (Rated for Div. 2) C. Ping-pong
-
第十五次训练:Educational Codeforces Round 72 (Rated for Div. 2) && Codeforces Round #582 (Div. 3)
-
第二次训练:Educational Codeforces Round 77 (Rated for Div. 2)