Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55091 | lgh | 列队 | C++ | 输出超限 | 90 | 1139 MS | 78396 KB | 864 | 2022-08-08 21:54:12 |
#include <bits/stdc++.h> using namespace std; #define mod 998244353 #define maxn 10000001 inline int read() { int x=0; bool f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') f=0; ch=getchar(); } while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+(ch^48),ch=getchar(); return f?x:-x; } inline int Pow(int a,int b) { int ans=1; while(b) { if(b&1) ans=1ll*ans*a%mod; a=1ll*a*a%mod; b>>=1; } return ans%mod; } int fac[10000005]= {1},inv[10000005]= {1},t,n,m; int main() { for(int i=1; i<=maxn; i++) fac[i]=1ll*fac[i-1]*i%mod; inv[maxn]=Pow(fac[maxn],mod-2); for(int i=maxn-1; i; i--) inv[i]=1ll*inv[i+1]*(i+1)%mod; t=read(); while(t--) { m=read(),n=read(); if(n<m-1) puts("0"); else printf("%d\n",1ll*fac[n]%mod*fac[n+1]%mod*inv[n-m+1]%mod); } return 0; }