【UVa 11300】&【BZOJ 1045】【HAOI 2008】推一发
2017-03-01 15:40
260 查看
Description
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。Input
第一行一个正整数n<=987654321,表示小朋友的个数.接下来n行,每行一个整数ai,表示第i个小朋友得到的糖果的颗数.Output
求使所有人获得均等糖果的最小代价。Sample Input
41
2
5
4
Sample Output
4题解
详见白书《训练指南》P5代码
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 1000010 typedef long long ll; ll a ,c ,tot,m,n; int main() { scanf("%lld",&n); for(int i = 1;i <= n;i++) { scanf("%lld",&a[i]); tot += a[i]; } m = tot / n; c[0] = 0; for(int i = 1;i < n;i++) c[i] = c[i-1] + a[i] - m; sort(c,c+n); m = c[n/2]; tot = 0; for(int i = 0;i < n;i++) tot += abs(m - c[i]); printf("%lld\n",tot); return 0; }
相关文章推荐
- bzoj3293 [Cqoi2011]分金币&&bzoj1045 [HAOI2008]糖果传递
- bzoj3293 [Cqoi2011]分金币&&bzoj1045 [HAOI2008]糖果传递
- [BZOJ 1045] HAOI 2008 糖果传递 & [BZOJ 3293] CQOI 2011 分金币 · 数学
- 【BZOJ】1045 [HAOI2008] 糖果传递 && 3293 [Cqoi2011]分金币 贪心
- BZOJ1045 HAOI2008糖果传递
- 1045: [HAOI2008] 糖果传递 - BZOJ
- 【czy系列赛】czy的后宫6 && bzoj1044 [HAOI2008]木棍分割
- [BZOJ1045]HAOI2008糖果传递|中位数|数学
- bzoj1045【haoi2008】糖果传递
- [BZOJ1045][HAOI2008]糖果传递
- BZOJ 1045 [HAOI2008] 糖果传递
- BZOJ 1045 HAOI 2008 糖果传递 数学推导
- [BZOJ1045][HAOI2008]糖果传递(数学分析)
- BZOJ 1045: [HAOI2008] 糖果传递
- BZOJ 1056: [HAOI2008]排名系统 & BZOJ 1862: [Zjoi2006]GameZ游戏排名系统
- bzoj1045: [HAOI2008] 糖果传递 贪心
- BZOJ 1045: [HAOI2008] 糖果传递
- 【BZOJ】1045: [HAOI2008]糖果传递(中位数)
- [BZOJ 1045] [HAOI2008] 糖果传递
- BZOJ 1045 (UVa 11300) 数学分析 + 结论