#415 Div2 C
#415 Div2 C
题意
给定一个数字集合,找到所有子集合最大值与最小值之差的和。
分析
列式子,找规律。
$ (a_2 - a_1) * 2^0 + (a_3 - a_1) * 2^1 + ... + (a_n - a_1) * 2^{n-2}$
+ \((a_3 - a_2) * 2^0 + (a_4 - a_2) * 2^1 + ...+ (a_n - a_2) * 2^{n-3}\)
+ ...
+ \((a_{n-1} - a_{n-2}) * 2^0 + (a_n - a_{n-2}) * 2^1\)
+ \((a_n - a_{n-1}) * 2^0\)
式子中存在连续的公共项。
code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 3e5 + 10;
const ll MOD = 1e9 + 7;
ll a[MAXN];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n);
ll ans = 0;
ll s = 0;
for(int i = 1; i < n; i++) {
s += a[i];
}
s %= MOD;
ll s1 = s - a[n - 1] + a[0];
s1 = (s1 + MOD) % MOD;
ll d = 1;
for(int i = 1; i < n; i++) {
(ans += s * d) %= MOD;
(d <<= 1) %= MOD;
s -= a[i];
s = (s + MOD) % MOD;
}
d = 1;
for(int i = n - 2; i >= 0; i--) {
ans = (ans - s1 * d + MOD) % MOD;
(d <<= 1) %= MOD;
s1 = (s1 - a[i] + MOD) % MOD;
}
while(ans < 0) ans = (ans + MOD) % MOD;
cout << ans << endl;
return 0;
}
#415 Div2 C的更多相关文章
- codeforces round #415 div2
由于下午硬钢树套树和大力颓废就没补完 C:我傻逼比赛时没做出来...就是排个序然后算贡献 #include<bits/stdc++.h> using namespace std; type ...
- #415 Div2 Problem C Do you want a data? (math && 前后缀和 && 快速幂)
题意: 首先定义集合的F值为 这个集合里面最大值和最小值的差. 现给出一个拥有n个数的集合(没有相同的元素), 要求求出这个集合内所有子集的F的值的和.例如: {4.7}这个集合里面有子集{4}.{ ...
- bc#54 div2
用小号做的div2 A:竟然看错了排序顺序...白白WA了两发 注意读入一整行(包括空格):getline(cin,st) [gets也是资瓷的 #include<iostream> us ...
- $('div a') 与$('div>a'),.div+.div2与.div~.div2
$('div a'):div标签下所有层次a元素的jquery对象 $('div>a'):div标签下子元素层次a元素的jquery对象 <body> <div class=' ...
- [JavaEE]调用Restful Service 出现415 Unsupported Media Type的问题(Rest Request Header中的Content-Type问题)
用Chrome的插件Simple REST Client 调用POST的REST服务时,老是报415错误,如图. 一开始就以为是服务端的问题,各种google,百度,折腾了一下午未果. 晚上继续看,一 ...
- angularjs - 415 (Unsupported Media Type)
angularJs+springMVC angular表单提交一个user实体时,报 angularjs - 415 (Unsupported Media Type)错误!! 原因是$http({ u ...
- SRM 657 DIV2
-------一直想打SRM,但是感觉Topcoder用起来太麻烦了.题目还是英文,不过没什么事干还是来打一打好了.但是刚注册的号只能打DIV2,反正我这么弱也只适合DIV2了.. T1: 题目大意: ...
- ajax往后台传json格式数据报415错误
问题描述: ajax往后台传json格式数据报415错误,如下图所示 页面代码 function saveUser(){ var uuId = document.getElementById(&quo ...
- System.Net.WebException : The remote server returned an error: (415) UNSUPPORTED MEDIA TYPE
I am having problems with a bit of code that accesses a restful web service. Running this code, it e ...
随机推荐
- html列表问题
HTML无序列表 无序列表是一个项目的列表,此列项目运用粗体圆点(典型的小黑圆圈)进行符号. 无序列表运用 标签 Coffee Milk 浏览器闪现如下: <ul "="&q ...
- AngularJS学习笔记4
9.AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据. <div ng-app="myApp" ...
- php object 对象系统
php object 对象系统 概述 本节内容仅谈论对象系统内容, 对于相关内容并不做更深一步的扩展, 相关扩展的内容会在后续补充 object 对象属于 zval 结构的一种形式 php 将所有执行 ...
- Android Weekly Notes Issue #254
Android Weekly Issue #254 April 23rd, 2017 Android Weekly Issue #254 本期内容包括: 如何用Kotlin写一个Gradle Plug ...
- typedef和define的详细区别
typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字. #define是预处理指令.下面让我们一起来看. typedef是C语言语句, ...
- SDN学习之Mininet验证OpenFlow协议版本
最近学习如何使用mininet,但是,刚刚开始时一直无法知道如何查看OpenFlow协议的版本,通过查阅网上的资料,从SDNLAB中,学习到了如何验证,mininet自身基于OpenFlow13版本的 ...
- PRML读书笔记——机器学习导论
什么是模式识别(Pattern Recognition)? 按照Bishop的定义,模式识别就是用机器学习的算法从数据中挖掘出有用的pattern. 人们很早就开始学习如何从大量的数据中发现隐藏在背后 ...
- TPshop分销功能的使用与表设计
首先来段科普,摘自百度百科: 在西方经济学中,分销 的含义是建立销售渠道的意思,根据著名的营销大师菲利普·科特勒的定义,分销渠道(Distribution Channel)又或者叫营销渠道(Marke ...
- mysql修改数据库名
1.创建新库 2.创建新库用户 3.备份旧库 4.修改表名 5.删除旧库 环境:mysql5.6已经有数据库dbbzpt,需要把它修改为dbedu. 1,2.使用root用户登录创建新库.创建 ...
- 高性能linux服务器内核调优
高性能linux服务器内核调优 首先,介绍一下两个命令1.dmesg 打印系统信息.有很多同学们服务器出现问题,看了程序日志,发现没啥有用信息,还是毫无解决头绪,这时候,你就需要查看系统内核抛出的异常 ...