Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
34731 | A21μΘ_wjy | 【S】T4 | C++ | 通过 | 100 | 18 MS | 3376 KB | 980 | 2024-11-14 14:27:22 |
#include<bits/stdc++.h> #define int long long using namespace std; const int mod=998244353; const int maxn=2e5+7; inline int qpow(int a,int b){ int ans=1; while(b){ if(b&1)ans=ans*a%mod; a=a*a%mod; b>>=1; } return ans; } int Fac[maxn],iFac[maxn]; inline void Init(){ Fac[0]=1; for(int i=1;i<maxn;i++)Fac[i]=Fac[i-1]*i%mod; iFac[maxn-1]=qpow(Fac[maxn-1],mod-2); for(int i=maxn-2;i>=0;i--)iFac[i]=iFac[i+1]*(i+1)%mod; } inline int C(int n,int m){ if(n<0||m<0||n<m)return 0; return Fac[n]*iFac[m]%mod*iFac[n-m]%mod; } inline void slv(){ int n,m; cin>>n>>m; int ans=0; for(int k=1;k<=n;k++){ ans=(ans+C(n-m*k+2*k,2*k)+mod-C(n-m*k+k,2*k))%mod; } cout<<ans<<endl; return; } signed main(){ #ifndef ONLINE_JUDGE freopen("magic.in","r",stdin); freopen("magic.out","w",stdout); #endif Init(); int _;cin>>_;while(_--)slv(); }