1 条题解

  • 1
    @ 2024-1-24 14:53:23

    题目所求的是每个数和除自己以外的数分别乘积,而(i=1nai)×(i=1nai)(i=1nai2)(\sum _{i=1}^n a_i) \times (\sum _{i=1}^n a_i) - (\sum _{i=1}^n a_i^2)相当于每对数都算了两次,把上式的结果除以2即可。

    核心代码
    
    #include <iostream>
    using namespace std;
    long long n, ans, sum, a;
    int main()
    {
        cin >> n;
        for (int i = 1; i <= n; i++) {
            cin >> a;
            sum += a;
            ans -= a * a;
        }
        ans += sum * sum;
        cout << ans / 2;
        return 0;
    }
    
    • 1

    信息

    ID
    660
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    (无)
    递交数
    104
    已通过
    65
    上传者