BZOJ 1045 [HAOI2008] 糖果传递 ……
2017-09-17 20:18
309 查看
Description
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。Input
第一行一个正整数n<=987654321,表示小朋友的个数.接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.
Output
求使所有人获得均等糖果的最小代价。Sample Input
41
2
5
4
Sample Output
4HINT
传送门题目范围其实是n<=1000000……ai<=1e9……
竟然没想出来……还是挺厉害的……
orz hzwer
对了注意一下long long
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=1000005; int n; ll a ,S ; int main(){ cin>>n;ll ave=0LL; for (int i=1;i<=n;i++) scanf("%lld",&a[i]),ave+=a[i]; ave/=(ll)n,S[0]=0LL; for (int i=1;i<=n;i++) S[i]=S[i-1]+a[i]-ave; sort(S+1,S+1+n); ll ans=0LL,t=S[n>>1]; for (int i=1;i<=n;i++) ans+=abs(S[i]-t); cout<<ans<<endl; return 0; }
相关文章推荐
- bzoj 1045: [HAOI2008] 糖果传递 贪心
- 1045: [HAOI2008] 糖果传递 - BZOJ
- 【BZOJ1045】[HAOI2008] 糖果传递【绝对值不等式】【中位数】【数形结合】
- BZOJ 1045 [HAOI2008] 糖果传递
- 【数学】【HAOI2008】【BZOJ1045糖果传递】【BZOJ3293分金币】论数学的重要性
- 【BZOJ】1045 [HAOI2008] 糖果传递 && 3293 [Cqoi2011]分金币 贪心
- 【bzoj1045】[HAOI2008] 糖果传递
- 【bzoj1045】 HAOI2008糖果传递 中位数
- BZOJ1045 HAOI2008糖果传递
- [BZOJ 1045] HAOI 2008 糖果传递 & [BZOJ 3293] CQOI 2011 分金币 · 数学
- [BZOJ 1045] [HAOI2008] 糖果传递
- bzoj1045 [HAOI2008] 糖果传递
- BZOJ 1045 [HAOI2008]糖果传递 ★(环形等分:中位数)
- BZOJ1045 HAOI2008糖果传递(贪心)
- 【BZOJ1045】【HAOI2008】糖果传递
- 【BZOJ 1045】 [HAOI2008] 糖果传递
- BZOJ 1045 [HAOI2008]糖果传递 ★(环形等分:中位数)
- BZOJ 1045/1465: [HAOI2008] 糖果传递
- BZOJ1045_[HAOI2008] 糖果传递
- BZOJ 1045: [HAOI2008] 糖果传递