CQOI2011分金币&HAOI2008糖果传递
双倍经验……
没想到白书上竟然有……我还看过……还忘了……
抄份题解:
A1 + X1 - X2 = G
A2 + X2 - X3 = G
.
.
.
An + Xn - X1 = G
解得
X1 = X1
X2 = A1 - G + X1
X3 = A1 + A2 - G - G + X1
.
.
.
Xn = sigma(1, n)A - n * G + X1
注意到ans = abs (X1 - lamda1) + abs (X2 - lamda2) + ... + abs (Xn - lamdan)
于是sort 取中位数
代码:
var i,n:longint;
x1,tot,ave,ans:int64;
a,c:array[..] of longint;
procedure sort(h,l:longint);
var i,j,m,temp:longint;
begin
i:=h;j:=l;m:=c[(i+j)>>];
repeat
while (c[i]<m) do inc(i);
while (c[j]>m) do dec(j);
if i<=j then
begin
temp:=c[i];c[i]:=c[j];c[j]:=temp;
inc(i);dec(j);
end;
until i>j ;
if i<l then sort(i,l);
if j>h then sort(h,j);
end;
procedure main;
begin
readln(n);
tot:=;
for i:= to n do
begin
readln(a[i]);inc(tot,a[i]);
end;
ave:=tot div n;
c[]:=;
for i:= to n- do c[i]:=c[i-]+a[i]-ave;
sort(,n-);
ans:=;x1:=c[n>>];
for i:= to n- do inc(ans,abs(x1-c[i]));
writeln(ans);
end;
begin
main;
end.
CQOI2011分金币&HAOI2008糖果传递的更多相关文章
- 贪心+数学【p3156】 [CQOI2011]分金币 ([HAOI2008]糖果传递)
题目描述 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. 分析: 设: 每个人最 ...
- P2512 [HAOI2008]糖果传递&&P3156 [CQOI2011]分金币&&P4016 负载平衡问题
P2512 [HAOI2008]糖果传递 第一步,当然是把数据减去平均数,然后我们可以得出一串正负不等的数列 我们用sum数组存该数列的前缀和.注意sum[ n ]=0 假设为链,那么可以得出答案为a ...
- BZOJ 1045: [HAOI2008] 糖果传递 数学
1045: [HAOI2008] 糖果传递 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1045 Description 有n个小朋友坐 ...
- 【BZOJ 1045】 1045: [HAOI2008] 糖果传递
1045: [HAOI2008] 糖果传递 Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正整数n& ...
- bzoj 1045: [HAOI2008] 糖果传递 贪心
1045: [HAOI2008] 糖果传递 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1812 Solved: 846[Submit][Stat ...
- 【BZOJ1045】[HAOI2008]糖果传递
[BZOJ1045][HAOI2008]糖果传递 题面 bzoj 洛谷 题解 根据题意,我们可以很容易地知道最后每个人的糖果数\(ave\) 设第\(i\)个人给第\(i-1\)个人\(X_i\)个糖 ...
- 【BZOJ1045】[HAOI2008] 糖果传递 贪心
[BZOJ1045][HAOI2008] 糖果传递 Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正 ...
- BZOJ3293: [Cqoi2011]分金币(数学)
3293: [Cqoi2011]分金币 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1596 Solved: 969[Submit][Status ...
- bzoj1045: [HAOI2008] 糖果传递(数论)
1045: [HAOI2008] 糖果传递 题目:传送门(双倍经验3293) 题解: 一开始想着DP贪心一顿乱搞,结果就GG了 十分感谢hzwer大佬写的毒瘤数论题解: 首先,最终每个小朋友的糖果数量 ...
随机推荐
- 1061. Dating (20)
#include <stdio.h> #include <map> #include <string.h> #include <ctype.h> usi ...
- OFBIZ bug_ControlServlet.java:239:ERROR
错误日志: [java] 2014-09-23 00:11:34,877 (http-bio-0.0.0.0-8080-exec-4) [ ControlServlet.java:141:INFO ] ...
- 十三、mysql 分区之 RANGE && LIST
.RANGE 分区 创建实例: CREATE TABLE EMP ( id int not null primary key auto_increment, name ) not null defau ...
- EXTJS 4.2 添加滚动条
bodyStyle: 'overflow-x:hidden; overflow-y:scroll',//显示滚动 文章来源:http://www.cnblogs.com/exmyth/archive/ ...
- POJ 2151 概率DP
主要的子问题是每一个队伍有一个做出题目的概率,求做出k个题目的概率.简单的简单的组合数DP.想清楚即可. 1: #include <iostream> 2: #include <cs ...
- IOS成长之路-调用照相机和相册功能(转)
转载自:http://blog.csdn.net/like7xiaoben/article/details/8465237 //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机 ...
- 遍历并修改dictionary的值
var dictionary = clb_Select.Items.Cast<object>().ToDictionary(item => item.ToString(), item ...
- 然爸读书笔记(2013-4)----打造facebook
扎克伯格的真实一面 (1)在公司内部知无不言,扎克伯格在公司内部问答时间.尽可能回答员工的任何问题,保持足够的透明度. (2)员工只有做到对外守口如瓶,我们才能做到对内知无不言. (3)faceboo ...
- js注册登录审核
<script type="text/javascript"> $(function(){ $("#sendSms").click(function ...
- json分别算出元素的个数和最多的元素
个数: var str = 'aaafsdsaaasasasasaa'; var json = {}; for (var i = 0; i < str.length; i++) { if(!js ...