codeforces round #415 C.Do you want a Date?
来源:互联网 发布:python 提取文件路径 编辑:程序博客网 时间:2024/06/01 10:22
题意:给n个坐标,你可以挑选任意组合,每个组合的距离为该组合的最大值-最小值,求所有组合的值的和
思路:按坐标从大到小排序后,从0~n-2往后取相邻两点,求这段距离用了多少次*该距离差值,求用的次数:每段距离左边和右边至少个选一个点,即(2的x(左边点的个数)次方-1)*2的y(右边点的个数)次方-1),用快速幂维护一个枚举数组(2的x(点的个数)次方)即可(刚开始忘了快速幂,真的菜)
#include <iostream>#include <algorithm>using namespace std;const int maxn = 3*100000+10;long long arr[maxn],pd[maxn];int n;const long long ret = 1000000007;bool cmp(long long a,long long b){ return a<b;}void node(){ pd[0] = 0; for(int i = 1;i<n;i++) { long long res = 1,y = i,x = 2; while(y>0) { if(y&1) res = res * x %ret; x = x*x%ret; y>>=1; } pd[i] = res-1; }}int main(){ cin>>n; node(); for(int i = 0;i<n;i++) cin>>arr[i]; sort(arr,arr+n,cmp); long long ans = 0; for(int i = 0;i<n-1;i++) { ans = (ans +(arr[i+1]-arr[i])*(pd[i+1]*pd[n-i-1]%ret)%ret)%ret; } cout<<ans; return 0;}
阅读全文
0 0
- Codeforces Round #415 C. Do you want a date?
- codeforces round #415 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 (Div. 2) C. Do you want a date? 【前缀和】
- Codeforces Round #415 (Div. 1) A 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?【思维】
- C. Do you want a date?
- 810C. Do you want a date?
- 【Codeforces 809 A. Do you want a date?】
- Codeforces 809A Do you want a date?
- OpenCV分水岭watershed的应用注意
- 深入理解Spring Redis的使用 (五)、常见问题汇总
- java基础--跳转控制语句return break continue
- 4886: [Lydsy2017年5月月赛]叠塔游戏
- 面试题集锦
- codeforces round #415 C.Do you want a Date?
- linux运维-postfix邮件的处理
- 深入理解Spring Redis的使用 (六)、用Spring Aop 实现注解Dao层的自动Spring Redis缓存
- 2017年 3月到2017年6月
- SystemUI 7.0学习笔记二-状态栏和导航栏
- docker入门安装
- 将access_token保存在哪?
- unity3d施加牛顿力
- 嵌入式Linux应用程序开发详解-笔记1