QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#505296#9105. Zayin and CampAfterlifeRE 0ms0kbC++201.1kb2024-08-05 01:24:202024-08-05 01:24:21

Judging History

你现在查看的是最新测评结果

  • [2024-08-05 01:24:21]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-08-05 01:24:20]
  • 提交

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

output:


result: