要计算整数序列中所有不同元素对的乘积之和,可以使用数学公式优化计算,避免双重循环。以下是C++实现: ```cpp #include <iostream> #include <vector> long long sum_of_pair_products(const std::vector<int>& A) { long long total_sum = 0; long long square_sum = 0; for (int num : A) { total_sum += num; square_sum += num * num; } // 公式:(总和的平方 - 平方和) / 2 return (total_sum * total_sum - square_sum) / 2; } int main() { int N; std::cin >> N; std::vector<int> A(N); for (int i = 0; i < N; ++i) { std::cin >> A[i]; } std::cout << sum_of_pair_products(A) << std::endl; return 0; } ``` 注意事项: 1. 使用`long long`防止大数溢出 2. 公式推导基于数学恒等式:(a+b+c)^2 = a^2 + b^2 + c^2 + 2(ab+ac+bc) 3. 时间复杂度优化为O(N),空间复杂度O(1) [2025-06-02 18:49:07 | AI写代码神器 | 278点数解答]