比赛 寒假集训5 评测结果 WWWWWWWWWW
题目名称 挚爱时光 最终得分 0
用户昵称 123 运行时间 2.619 s
代码语言 C++ 内存使用 79.99 MiB
提交时间 2026-03-01 12:37:08
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=5e6+10,mod=998244353;
int t,n,k;
long long f[N],inv[N];
long long qpow(int x,int y)
{
    long long ans=1,cnt=x;
    while (y)
    {
        if (y%2==1) ans=ans*cnt%mod;
        cnt=cnt*cnt%mod;
        y/=2;
    }
    return ans;
}
long long C(int x,int y)
{
    if (x==0) return 1;
    return f[x]*inv[x]%mod*inv[y-x]%mod;
}
int main() {
    freopen("love.in","r",stdin);
    freopen("love.out","w",stdout);
    ios::sync_with_stdio(0),cin.tie(0);
    f[0]=inv[0]=f[1]=1;
    for (int i=2;i<=N-10;i++) f[i]=f[i-1]*i%mod;
    inv[N-10]=qpow(f[N-10],mod-2);
    for (int i=N-11;i>=1;i--) inv[i]=inv[i+1]*(i+1)%mod;
    cin>>t;
    while (t--)
    {
        cin>>n>>k;
        long long ans=C(k,n)*qpow(2,n)%mod*f[n-k]%mod*f[n]%mod;
        cout<<ans<<endl;
    }
}