马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
T778641 模拟赛1 T1 评估(assess)
题目描述
小明同学是一家科技公司数据分析部门的员工。一天,他获取到了一组长度为 \(n\) 的整数数列 \(a_i\),这个数列代表着每个时间段产物的性能数据。为了更深入地了解产物性能的波动情况,他需要计算 \(\sum_{i=1}^{n-1} \sum_{j=i+1}^n |a_i - a_j|^2\) 来评估整体的差异程度(数列从 \(1\) 开始编号)。
但小明同学并不想去计算,于是他想请你帮忙。
输入格式
输入的第一行包含一个正整数 \(n\),表现数列的长度。
输入的第二行包含 \(n\) 个整数 \(a_i\),表现每个时间段产物的性能数据。
输出格式
输出共一行,包含一个整数,表现数列整体的差异程度。
输入输出样例 #1
输入 #1
输出 #1
输入输出样例 #2
输入 #2
输出 #2
说明/提示
样例 1 表明
\(|2-8|^2 + |2-4|^2 + |8-4|^2 = 36 + 4 + 16 = 56\)。
数据规模与约定
- 对于 \(40\%\) 的数据,保证 \(n \le 1000,|a_i| \le 10\)。
- 对于 \(100\%\) 的数据,保证 \(n \le 1 \times 10^5,|a_i| \le 1000\)。
这是我的模拟赛满分的题目
首先很多人看到这题心想:这么简单的罗列?
就直接双重循环打暴力结果发现:
有一半过不了??
我就是这么过来的
这题难度不大,但是很坑,我们要用O(n)的法子过掉
让我们从给的式子入手:
\(\sum_{i=1}^{n-1} \sum_{j=i+1}^n |a_i - a_j|^2\)
展开平方:
\((a_i - a_j)^2=a_i^2-2a_ia_j+a_j^2\)
全部配对推导我们可以得到:
\(\sum_{i>n; long long sum=0,s=0; for(int i=1;i>a; sum+=a; s+=a*a; } ans=(1ll*n*s-sum*sum); //完善的优化O(n)! cout |