在题库里面乱翻,就翻到了。

因为在这道题里面子序列不需要考虑元素顺序,所以原序列无论是什么顺序都不会影响答案。

所以先把元素按照从大到小的顺序排列,然后考虑每个元素的贡献。

在当前序列中,对于元素 \(a_i\),不妨设其为最小值,并去寻找它能作为哪些序列的最小值。容易发现它作为最小值的时候只能和 \(1\sim i\) 中的元素产生贡献。

具体的,对于当前从 \(1\sim i\) 中选择的 \(a_j\),如果令其为最大值,那么由 \(a_i\) 和 \(a_j\) 这两个值作为最值的序列元素一定都在 \(j\sim i\) 之间,学过集合的同学都知道,这样的序列显然有 \(2^{i-j-1}\) 个。

这样我们就可以得到一个 \(\mathcal{O}(n^2)\) 的解法,如下:

\[\sum_{i=1}^{n}(a_i\times(\sum_{j=1}^{i}(a_j\times 2^{i-j-1})))
\]

由于 \(i-j-1\) 中会出现负数,我们稍微变一下式子可以得到:

\[\sum_{i=1}^{n}(a_i\times(\sum_{j=1}^{i-1}(a_j\times 2^{i-j-1})+a_i))
\]

但是这样显然还不够,于是我们可以

对 \(j\) 的枚举进行优化。容易想到预处理。

我们用一个中间变量 \(sum\) 表示第二个括号里面的值。每次计算过答案以后,我们让 \(sum\gets sum\times 2+a_i\) 即可。

记得取模。

提交记录

题解:AT_arc116_b [ARC116B] Products of Min-Max的更多相关文章

  1. LINQ to SQL Count/Sum/Min/Max/Avg Join

    public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...

  2. LINQ Count/Sum/Min/Max/Avg

    参考:http://www.cnblogs.com/peida/archive/2008/08/11/1263384.html Count/Sum/Min/Max/Avg用于统计数据,比如统计一些数据 ...

  3. LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg

    LINQ  to SQL 语句(3) 之  Count/Sum/Min/Max/Avg [1] Count/Sum 讲解 [2] Min 讲解 [3] Max 讲解 [4] Average 和 Agg ...

  4. [转]LINQ语句之Select/Distinct和Count/Sum/Min/Max/Avg

    在讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ ...

  5. linq语法之select distinct Count Sum Min Max Avg

    原文来自:http://www.50cms.com/Pages_13_72.aspx 本篇详细说明linq中的Select和Count/Sum/Min/Max/Avg等的用法. Select/Dist ...

  6. LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg (转)

    Select/Distinct操作符 适用场景:o(∩_∩)o… 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也 ...

  7. Linq-语句之Select/Distinct和Count/Sum/Min/Max/Avg

    上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to Data ...

  8. JS中Float类型加减乘除 修复 JQ 操作 radio、checkbox 、select LINQ to SQL:Where、Select/Distinct LINQ to SQL Count/Sum/Min/Max/Avg Join

    JS中Float类型加减乘除 修复   MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄Ov ...

  9. LightOJ - 1162 Min Max Roads

    LightOJ - 1162 Min Max Roads 题解:在线倍增LCA和模拟ST表 让我们求从\(u->v\)最短路径上的边权最大值和边权最小值,那么我们可以利用倍增思想,类似其\(fa ...

  10. 在一定[min,max]区间,生成n个不重复的随机数的封装函数

    引:生成一个[min,max]区间的一个随机数,随机数生成相关问题参考→链接 var ran=parseInt(Math.random()*(max-min+1)+min); //生成一个[min,m ...

随机推荐

  1. CvT:微软提出结合CNN的ViT架构 | 2021 arxiv

    CvT将Transformer与CNN在图像识别任务中的优势相结合,从CNN中借鉴了多阶段的层级结构设计,同时引入了Convolutional Token Embedding和Convolutiona ...

  2. 2 - 【RocketMQ 系列】CentOS 7.6 安装部署RocketMQ

    二.开始安装部署RocketMQ 官方网站:https://rocketmq.apache.org/ 各版本要求: 1.版本选取 下载地址: https://github.com/apache/roc ...

  3. TP3.2与TP5.0的区别

    1. 控制器输出return $this->fetch(); ----5$this->display(); ----3.2单字母函数去掉了 如:M() D() U() S() C() 3. ...

  4. AT_agc022_a 题解

    洛谷链接&Atcoder 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 给定字符串 \(S\) , 仅包含互不相同的小写字母, 你需要找到仅包含互不相同的小写 ...

  5. [rCore学习笔记 05]第0章作业题

    作业1 略. 作业2 C语言程序 gcc编译 gcc -o main main.c 编译报错 成功产生异常 main.c: In function 'main': main.c:5:26: warni ...

  6. CF1951

    A link 这个题就是讨论. 首先,如果没有\(1\)就一定可以. 如果有\(1\). 如果长度为\(2\)一定不行. \(1\)的个数为奇数不行. 如果为偶数 有一个小点:如果是\(2\)个\(1 ...

  7. 【Nexus】Linux上的Maven私服搭建

    [1.安装Nexus] 需要Linux安装JDK运行,Nexus2版本JDK7,3版本JDK8 首先需要Nexus服务器文件 nexus-2.12.0-01-bundle.tar.gz 解压 tar ...

  8. 【Vue】11 VueRouter Part1 概述 & 入门

    什么是路由? 即通过互联网把信息从源地址传输到目的地址的活动 路由决定数据包从来源到目的地的路径 转送将输入端的数据转移到合适的输出端 后端路由: 早起网站开发全部由服务器渲染,例如 Java的JSP ...

  9. 【JavaScript】前端算法题 40道题+解析

    前言 最近练习了一些前端算法题,现在做个总结,以下题目都是个人写法,并不是标准答案,如有错误欢迎指出,有对某道题有新的想法的友友也可以在评论区发表想法,互相学习 题目 题目一: 二维数组中的查找: 在 ...

  10. 如何理解自动驾驶的分级:L0、L1、L2、L3、L4、L5

    相关: https://baijiahao.baidu.com/s?id=1792281493472406727&wfr=spider&for=pc L0,就是完全没有自动驾驶技术的车 ...