80分代码求救,bliebro
  • 板块P10514 考试
  • 楼主KouMoSir
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/20 21:03
  • 上次更新2024/5/21 00:59:18
查看原帖
80分代码求救,bliebro
1019606
KouMoSir楼主2024/5/20 21:03
#include<unordered_map>
#include<algorithm>
#include<stdlib.h> 
#include<iostream>
#include<iomanip>
#include<utility>
#include<random>
#include<vector>
#include<cmath>
#include<array>
#include<queue>
#include<stack>
#include<map>
#include<set>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pa;
const ll N = 5e5 + 10, INF = 0x7fffffffffffffff, MOD = 998244353;

ll t;
ll n, m, k, a[N], f[N], g[N];
ll qm(ll x, ll y) {
    ll res = 1;
    while (y) {
        if (y & 1) {
            res = res * x % MOD;
        }
        y >>= 1;
        x = x * x % MOD;
    }
    return res;
}
ll C(ll m, ll n) {
    if (m > n || m < 0 || n < 0)return 0;
    else return f[n] * g[n - m] % MOD * g[m] % MOD;
}
void solve() {
    cin >> n >> m >> k;
    f[0] = g[0] = 1;
    for (ll i = 1; i <= n; i++)cin >> a[i];
    for (ll i = 1; i <= n; i++) {
        f[i] = f[i - 1] * i % MOD;
        g[i] = g[i - 1] * qm(i, MOD - 2) % MOD;
    }
    ll ans = 1;
    for (ll i = 1; i <= n; i++) {
        ans = ans * C(a[i], n - k) % MOD * qm(C(a[i], n), MOD - 2) % MOD;
    }
    cout << ans << '\n';

}

int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    t = 1;
    //cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}/*

 */

还有就是这概率真难想啊,我都是半蒙半猜,要是没有样例解释我该怎么办啊?

2024/5/20 21:03
加载中...