[分治] Codeforces#415 (Div. 1) 809A. Do you want a date?
来源:互联网 发布:mac怎么移除桌面图标 编辑:程序博客网 时间:2024/06/05 02:14
题意
给出一个n个元素的数集。
求这个集合的所有非空子集的权值和。一个集合
题解
集合的权值只由最大和最小的两个数决定,所以可以想到给
定义一个区间
这个就分治乱搞就好了。
#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const LL maxn=300015, MOD=1000000007;int n,ans;LL a[maxn],pw[maxn],inv_pw[maxn];void Solve(int L,int R){ if(R-L+1<=1) return; int mid=(L+R)>>1; Solve(L,mid); Solve(mid+1,R); LL sum1=0,sum2=0; for(int i=mid+1;i<=R;i++) sum1=(sum1+pw[i])%MOD, sum2=(sum2+pw[i]*a[i]%MOD)%MOD; for(int i=L;i<=mid;i++){ int res=inv_pw[i+1]* ((sum2+(MOD-a[i])*sum1%MOD)%MOD) %MOD; ans=(ans+res)%MOD; }}int main(){// freopen("A.in","r",stdin);// freopen("A.out","w",stdout); pw[0]=inv_pw[0]=1; for(int i=1;i<=300005;i++) pw[i]=pw[i-1]*2%MOD, inv_pw[i]=inv_pw[i-1]*((MOD+1)/2)%MOD; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%I64d",&a[i]); sort(a+1,a+1+n); Solve(1,n); printf("%d\n",ans); return 0;}
阅读全文
0 0
- [分治] Codeforces#415 (Div. 1) 809A. Do you want a date?
- Codeforces Round #415 (Div. 1) A 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?
- 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 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?【思维】
- codeforces——809A/810C——Do you want a date?
- CodeForces 617E XOR and Favorite Number(莫队)
- Java异常处理
- linux下platform总线驱动
- css3实现一个div设置多张背景图片及background-image属性
- 函数重载
- [分治] Codeforces#415 (Div. 1) 809A. Do you want a date?
- UVa10817 Headmaster's Headache
- (二)线段树入门--懒操作
- Aizu 1369 Distribution Center 模拟|签到
- Android+Cordova混合开发以及Cordova自定义插件
- python中模块和方法的查找
- iOS开发之产生随机浮点数
- antd mobile(一) 环境搭建
- 字符串函数之Strtok()函数