洛谷T778641 模拟赛1 T1 评估(assess)

[复制链接]
发表于 2026-8-15 15:37:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
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. 3
  2. 2 8 4
复制代码
输出 #1
  1. 56
复制代码
输入输出样例 #2

输入 #2
  1. 5
  2. -5 8 9 -4 -3
复制代码
输出 #2
  1. 950
复制代码
说明/提示

样例 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
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表