Codeforces 810C Do you want a date 枚举
来源:互联网 发布:己知直径求周长 编辑:程序博客网 时间:2024/06/06 01:27
点击打开链接
题意:
n个数,n<=3e5,2^n-1个非空集合 F(a)定义为集合a中最大值-最小值之差 求所有F(a)之和mod1e9+7//sort后 枚举最小值为i,则ans+=(a[j]-a[i])*2^(j-i-1) (j=i+1~n)
//化解:一个数a[i]总共减了:a[i]*(2^0~2^(n-i-1)) 加了a[i]*(2^0+~2^(i-2))
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=3e5+20;const int M=3e5+5;const ll mod=1e9+7;ll n,a[N];ll pw2[N];int main(){pw2[0]=1;for(int i=1;i<=M;i++)pw2[i]=(pw2[i-1]*2ll)%mod;while(cin>>n){for(int i=1;i<=n;i++)scanf("%I64d",&a[i]);sort(a+1,a+1+n);ll ans=0;for(int i=1;i<=n;i++){ll sub,add;if(i==n)sub=0;elsesub=(a[i]*(pw2[n-i]-1)+mod)%mod;if(i==1)add=0;elseadd=(a[i]*(pw2[i-1]-1)+mod)%mod;ans=(ans-sub+mod)%mod;ans=(ans+add)%mod;}cout<<ans<<endl;}return 0;}
阅读全文
0 0
- Codeforces 810C Do you want a date 枚举
- Codeforces 810C Do you want a date? 题解
- CodeForces 810C Do you want a date? 【数学】【排序】
- codeforces 810C Do you want a date? 思维
- Codeforces 810C Do you want a date?【思维】
- 810C. Do you want a date?
- Codeforces Round #415 C. Do you want a date?
- codeforces round #415 C.Do you want a Date?
- codeforces——809A/810C——Do you want a date?
- C. Do you want a date?
- codeforces 810C Do you want a date? 数学 快速幂取模
- 【Codeforces 809 A. Do you want a date?】
- Codeforces 809A Do you want a date?
- Codeforces Round #415 (Div. 2)-C. Do you want a date?
- Codeforces Round #415 (Div. 2)C. Do you want a date? (数学归纳)
- Codeforces Round #415 (Div. 2) C. Do you want a date? 数学
- Codeforces Round #415 (Div. 2) C. Do you want a date?
- Codeforces Round #415 (Div. 2) C. Do you want a date?
- JdbcTemplate系列(二)----实战CRUD
- 手工收集ADDM日志
- mybatis 学习记录(4.1)—— 级联查询(无 association 和 collection)
- NAT和路由和代理服务器
- Codeforces 808C Tea Party
- Codeforces 810C Do you want a date 枚举
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 十一、Storm简介
- 存储过程
- spark开发问题记录
- Hibernate 的应用(两种方式)
- java设置不同path、classpath的方法
- php环境搭建(1)----network配置
- 搬寝室