【題解】ZeroJudge c893: 3. 平均變異次數

【題目敘述】

#include <iostream>
#include <iomanip>
using namespace std;

int n, k, c[1005];
long long a, b;
double ans;

int main() {
    cin >> n >> k;
    for (int i = 1; i <= k; i++){
        cin >> c[i];
    }
    for (int i = 1; i <= k; i++){
        if (!c[i]) continue;
        b += (long long)c[i] * (c[i]-1) / 2;
        for (int j = i+1; j <= k; j++){
            if (j) a += (long long)c[i] * (c[j]);
        }
    }
    ans = (double)a / (a+b) * (n-1);
    cout << fixed << setprecision(3) << ans << "\n";
}
分享本文 Share with friends