Codeforces Round #415 (Div. 2) C. Do you want a date? 【前缀和】
2017-11-06 13:28
323 查看
先把输入排个序,对于每个ai和aj来说,对最后的答案的贡献是 (aj−ai)∗2j−i−1 。这样复杂度在 n2。再化简一下式子,我们可以发现每个ai 对于答案的贡献是 ai∗(fi−fn−i−1),其中fi=20+21+...2i。
/* *********************************************** Author :xiang578 Email :i@xiang578.com Created Time :Mon Nov 6 10:52:14 2017 File Name :cf810c.cpp ************************************************ */ #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; int n; long long a[523456],f[523456]; const long long mod=1e9+7; int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); scanf("%d",&n); for(int i=0;i<n;i++) scanf("%lld",a+i); sort(a,a+n); f[0]=1; for(int i=1;i<n;i++) f[i]=(f[i-1]*2)%mod; for(int i=1;i<n;i++) f[i]=(f[i]+f[i-1])%mod; long long A=0; long long B=0; for(int i=0;i<n-1;i++) B=(B+a[i]*f[n-i-1-1]%mod)%mod; for(int i=1;i<n;i++) A=(A+a[i]*f[i-1]%mod)%mod; printf("%lld\n",(A-B+mod)%mod); return 0; }
相关文章推荐
- 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?
- Codeforces Round #415 (Div. 2) C. Do you want a date?
- codeforces round #415 C.Do you want a Date?
- Codeforces Round #415 C. Do you want a date?
- Codeforces Round #415 (Div. 1) A Do you want a date?
- Codeforces Round #415 (Div. 2)(A,暴力,B,贪心,排序)
- Codeforces Round #415 (Div. 2)
- Codeforces Round #415 (Div. 2) A. Straight «A»
- Codeforces Round #415 (Div. 2)A. Straight «A» (暴力)
- Codeforces Round #415(Div. 2)-810A.。。。 810B.。。。 810C.。。。不会
- Codeforces Round #415 (Div. 2)C
- Codeforces Round #415 (Div. 2)
- Codeforces Round #415 (Div. 2)B. Summer sell-off (水题)
- (二分)Codeforces Round #415 (Div. 2) D-Glad to see you!
- Codeforces Round #415 (Div. 2) B. Summer sell-off
- Codeforces Round #415 (Div. 2) A. Straight «A»