QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#505296 | #9105. Zayin and Camp | Afterlife | RE | 0ms | 0kb | C++20 | 1.1kb | 2024-08-05 01:24:20 | 2024-08-05 01:24:21 |
answer
#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353 ;
const int N =2e7 + 5;
int t[N] , rt[N];
int fpow(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;
}
int C(int a,int b) {
return 1LL * t[a] * rt[b] % mod * rt[a-b] % mod;
}
void solv() {
int n , m , r , s;
cin >> n >> m >> r >> s;
int ans = 1LL * C(n*m + r + s + n , n) * fpow(n*m + r + s + n , mod - 2) % mod;
// for(int x = 0;x <= n;x++) {
// ans = (ans + 1LL * fpow(x*m+r+x,mod-2) * C(x*m + r + x , x) % mod *
// C((n-x)*m + s + (n-x) , n-x) % mod * fpow((n-x)*m + s + (n-x) , mod - 2)) % mod;
// }
ans = 1LL * (r + s) * ans % mod;
cout << ans << '\n';
}
int main() {
ios::sync_with_stdio(false) ; cin.tie(0) ;
t[0] = 1;
int n = 2e7;
for(int i = 1;i <= n;i++) {
t[i] = 1LL * t[i - 1] *i % mod;
}
rt[n] = fpow(t[n] , mod - 2);
for(int i = n - 1;i >= 0;i--) {
rt[i] = 1LL * rt[i + 1] * (i + 1) % mod;
}
int T ; cin >> T;
while(T--) solv() ;
}
详细
Test #1:
score: 0
Runtime Error
input:
11 1 10000000 5000000 5000000 10000000 1 5000000 4999999 1 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 1 1 2 1 1 1 1 1 2 1 1 1 1 2 65536 128 262144 262144