彗星OJ - コンテスト#8 B [サポート市]

彗星OJ -コンテスト#8 Bのサポート都市

直接アナログ\(O(^ N-2)\) TLE、計算式を展開し、\(O(N)\)

\ [\ sum_ {i = 1} ^ N {(w_i - w_x)^ 2} = \ sum_ {i = 1} ^ N(w_i ^ 2 - 2w_iw_x + w_x ^ 2)= \ sum_ {i = 1} ^ N w_i ^ 2 - 2w_x \ sum_ {i = 1} ^ N w_i + \ sum_ {i = 1} ^ N w_x ^ 2 \]

$ \ sum_ {i = 1} ^ N w_i ^ 2 $ と呼ばれる\(SS \)

\(\ sum_ {i = 1 } ^ N w_iは\) と呼ばれる\(S \)

上記の式は、と略記:$のSS - 2w_xs + nw_x ^ 2 $

コード

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
typedef long long ll;
ll a[N],s,ss;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int n;
    cin >> n;
    for(int i = 0;i < n; ++i){
        cin >> a[i];
        s += a[i];
        ss += a[i] * a[i];
    }
    for(int i = 0;i < n; ++i){
        cout << ss - 2 * a[i] * s + n * a[i] * a[i] <<' ';
    }
    return 0;
}

おすすめ

転載: www.cnblogs.com/317zhang/p/11330671.html