BZOJ1045: [HAOI2008] 糖果传递
来源:互联网 发布:js translate 做动画 编辑:程序博客网 时间:2024/05/20 23:35
Description
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。
Input
第一行一个正整数nn<=1’000’000,表示小朋友的个数.
接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.
Output
求使所有人获得均等糖果的最小代价。
Sample Input
4
1
2
5
4
Sample Output
4
题目传送门
又是神东西,一顿瞎搞
计算出糖果平均值
然后记录每个点之前一共差了多少糖果
然后根据这个值来赋予它坐标
那么线上求一点使所有点到他的距离最小
中间值
代码如下:
#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;int n,a[1100000],pj,c[1100000];long long sum=0,ans=0;int cmp(const void*x1,const void*x2){ int n1=*(int*)x1; int n2=*(int*)x2; return n1-n2; }int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]; } pj=sum/n; for(int i=2;i<=n;i++) c[i]=c[i-1]+a[i]-pj; ans=0; qsort(c+1,n,sizeof(int),cmp); int mid=c[n/2+1]; for(int i=1;i<=n;i++) ans+=abs(c[i]-mid); printf("%lld\n",ans); return 0;}
by_lmy
阅读全文
1 0
- BZOJ1045 HAOI2008糖果传递
- bzoj1045: [HAOI2008] 糖果传递
- [BZOJ1045][HAOI2008]糖果传递
- bzoj1045【haoi2008】糖果传递
- BZOJ1045[HAOI2008] 糖果传递
- bzoj1045: [HAOI2008] 糖果传递
- bzoj1045: [HAOI2008] 糖果传递
- bzoj1045 [HAOI2008] 糖果传递
- 【BZOJ1045】【HAOI2008】糖果传递
- BZOJ1045: [HAOI2008] 糖果传递
- [BZOJ1045][HAOI2008][贪心]糖果传递
- bzoj1045: [HAOI2008] 糖果传递 贪心
- 【bzoj1045】 HAOI2008糖果传递 中位数
- bzoj1045/1465 [HAOI2008]糖果传递
- [BZOJ1045]HAOI2008糖果传递|中位数|数学
- [BZOJ1045][HAOI2008] 糖果传递(数学相关)
- bzoj3293 [Cqoi2011]分金币&&bzoj1045 [HAOI2008]糖果传递
- 【BZOJ1045】[HAOI2008] 糖果传递【绝对值不等式】【中位数】【数形结合】
- 清数大数据产业联盟会员Party暨数据科学研究院暖房Party成功举办
- 独家 | 大数据与AI技术在金融科技的应用
- Michael I. Jordan、Yann LeCun、王海峰...16场活动精华笔记、课件分享
- 独家 | 知识图谱技术在司法领域的应用:国双科技的探索与技术分享
- 算法(六)Clone Graph
- BZOJ1045: [HAOI2008] 糖果传递
- 朝阳有大妈,咱妈有嘻哈
- 新型智慧城市就选华为,给你一个理由先
- 7-98 不能用循环是一件多么悲伤的事(30 分)
- 微软框架下载
- 工厂设计模式
- 国庆绘国旗:用html5 canvas绘制国旗
- 玩转百度知道营销软件
- Mac下使文件标题栏显示绝对路径