摘要:
有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。不是圈的话,就像平分纸牌,加了个圈的话假设平均数是x,且a1给an了k个(k<0说明是an给a1了k个),那么总代价就可以算出来:令si=sum(a1..i)-ix,则总代价=sum|si-k|。易知k为中位数时此值最小。问题转化为求中位数……View Code #include<stdio.h>#include<iostream>#include<algorithm>#include<math.h>using namespace std;in 阅读全文
posted @ 2012-02-05 20:59 huhuuu 阅读(1701) 评论(0) 推荐(1) 编辑