题解:P8920 『MdOI R5』Variance

news/2025/3/19 10:33:10/文章来源:https://www.cnblogs.com/jxy2012/p/18780552

因为要让方差越大越好,所以要让序列 \(c\) 尽可能的不稳定。也就是说,要让小的数尽可能小,大的数尽可能大。

所以显然,\(c_i\) 一定在 \(a_i\)\(b_i\) 之中。

由于题目中的数组都是排序过的,所以一定存在一个分割点 \(i\) 满足对于所有 \(1 \le j \le i\)\(c_j\) 都等于 \(a_j\),所有 \(i+1 \le j \le n\)\(c_j\) 都等于 \(b_j\)

所以我们枚举分割点,求出序列的方差然后取 \(max\) 就好了。

接下来的问题就是怎么求方差乘上 \(n^2\) 的结果。

\[\begin{aligned}n^2 \cdot \sum_{i=1}^n{(a_i-\overline{a})^2} &= n \cdot \sum_{i=1}^n{(a_i^2-2 \cdot a_i \cdot \overline{a}+\overline{a}^2)} \\ &= n \cdot \sum_{i=1}^n{a_i^2}-2n\overline{a}\sum_{i=1}^na_i+n^2\cdot \overline{a}^2 \\ &=n \cdot \sum_{i=1}^n{a_i^2}-2\cdot (\sum_{i=1}^n{a_i})^2+(\sum_{i=1}^n{a_i^2}) \\ &= n \cdot \sum_{i=1}^n{a_i^2}-(\sum_{i=1}^n{a_i})^2\end{aligned} \]

所以只要用前缀和后缀和维护一下就好了。

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;
const int N = 1000005;
const int INF = 0x3f3f3f3f;
ll a[N], b[N];
void print(__int128 x) {if (x < 0) {putchar('-');x = -x;}if (x < 10) {putchar(x + 48);return;}print(x / 10);putchar(x % 10 + 48);
}
__int128 sa1[N], sa2[N];
__int128 sb1[N], sb2[N];
int main() {int n;scanf("%d", &n);for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);for (int i = 1; i <= n; i++) scanf("%lld", &b[i]);for (int i = 1; i <= n; i++) {sa1[i] = sa1[i - 1] + (__int128)a[i];sa2[i] = sa2[i - 1] + (__int128)a[i] * a[i];}for (int i = n; i >= 1; i--) {sb1[i] = sb1[i + 1] + (__int128)b[i];sb2[i] = sb2[i + 1] + (__int128)b[i] * b[i];}__int128 ans = 0;for (int i = 1; i <= n; i++) ans = max(ans, n * (sa2[i] + sb2[i + 1]) - (sa1[i] + sb1[i + 1]) * (sa1[i] + sb1[i + 1]));print(ans);putchar('\n');return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901404.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24级数应二班课堂作业2

2024010068 刘晓津 几年几月多少天year = int(input("请输入年份: ")) month = int(input("请输入月份: "))if month in [1, 3, 5, 7, 8, 10, 12]:days = 31 elif month in [4, 6, 9, 11]:days = 30 elif month == 2:if (year % 4 == 0 and year % 100 != …

简谈如何用纳米压印技术制备测序芯片-测序芯片-flowcell-代加工-外协加工-委外加工-激光代加工-河南郑州-芯晨微纳(河南)

利用纳米压印技术(Nanoimprint Lithography, NIL)制备测序芯片(如DNA测序芯片或生物传感器芯片)的核心在于通过高精度模板在基材上高效复制纳米级结构,从而构建用于捕获、固定或检测生物分子的功能表面。以下是具体步骤和关键技术要点:测序芯片的功能需求 测序芯片通常需…

SpringSecurity5(7-会话管理)

Spring Security 的会话管理可控制用户身份验证的会话行为,支持并发会话限制、防止会话固定攻击(Session Fixation)、会话超时控制等。可结合 Redis 实现分布式会话共享,提升安全性与用户体验,适用于高并发应用场景。会话管理 http.sessionManagement()invalidSessionUrl(…

jstat--java内存分析工具

jstat利用JVM内建的指令对应用程序的资源和性能实时的命令行监控,包括堆大小和垃圾回收状况。命令## n1 刷新时间 n2 总共输出次数 jstat -gcutil pid n1 n2说明S0 :s0已使用的容量占比 S1:s1已使用的容量占比 E:eden已使用容量占比 O:老年代已使用容量占比 CCS:压缩类…

AI与.NET技术实操系列(八):使用Catalyst进行自然语言处理

引言 自然语言处理(Natural Language Processing, NLP)是人工智能领域中最具活力和潜力的分支之一。从智能客服到机器翻译,再到语音识别,NLP技术正以其强大的功能改变着我们的生活方式和工作模式。 Catalyst的推出极大降低了NLP技术的应用门槛。它支持文本分类、实体识别等…

ACT中使用正则表达式验证UI展示

近在编写ACT的过程中,遇到校验UI的展示校验,要求数据由Number+空格+base unit进行展示。同事分享了一份参考方法如下图:最终在方法里面使用如下: Public void functionName(String verifyContent) throw exception{String regex = \\d+\\s\\S+;Controller.assertTrue(Pat…

【GreatSQL优化器-17】DYNAMIC RANGE

【GreatSQL优化器-17】DYNAMIC RANGE 一、DYNAMIC RANGE介绍 GreatSQL 的优化器有一种扫描方式是动态范围扫描方式,类似于“已读乱回”模式,这种模式是在表有多个索引的情况下,对驱动表连接的时候部分选择索引的情况。优化器没有找到好的索引可以使用,但发现在知道前面表的…

20244225 《python程序设计》实验一报告

课程:《Python程序设计》 班级: 2442 姓名: 孟雨欣 学号:2024422 实验教师:王志强 实验日期:2024年3月18日 必修/选修: 公选课 一、实验内容 1.熟悉Python开发环境; 本次实验使用pycharm作为开发环境,首先在官网下载并安装PyCharm社区版,安装完成后打开软件,创建一个…

(收藏)UniGUI学习之UniDBGrid常用方法(转载)

1]DataSource设置 2]显示MEMO类型里的文字3]显示悬浮提示4]显示当前记录及总记录数5]读取所有记录,及分页6]在前面加上序号列,并设置序号字体大小,所有单元格 字体大小,垂直居中7]不显示标题栏8]点击表头,单列排序UniDBGrid1ColumnSort9]编辑 和 更新 数据10]获得某单元格里…

纳米压印技术-测序芯片-flowcell-代加工-外协加工-委外加工-激光代加工-河南郑州-芯晨微纳(河南)

纳米压印技术(Nanoimprint Lithography, NIL)是一种高分辨率、低成本的微纳米结构制造技术,通过机械压印方式在材料表面形成纳米级图案。基本原理 核心思想:通过物理压印将模板上的纳米结构“转移”到目标材料(如聚合物、树脂等)上,替代传统光刻中的光学曝光。 关键步骤…

win11关闭实时保护(联想小新版本)

确保没有其他乱七八糟的杀毒软件,不然找不到实时保护 首先关闭联想电脑管家的安全防护 然后打开设置,搜索并进入 病毒和威胁防护 点击“病毒和威胁防护”设置下的管理设置 关闭实时防护即可

2025年最值得尝试的5个AI项目(从入门到高级)

近年来,人工智能已成为一项必备技能,如今,每家公司都希望组建自己的AI团队。这些AI团队的核心目标,是充分利用人工智能所带来的巨大能力。 另一方面,由于公司希望在团队中招聘AI专家,他们寻找的并不仅仅是会使用AI的人,而是能够根据公司的需求,量身定制AI工作流的人才。…