bzoj1045: [HAOI2008] 糖果传递
挺有趣的。观察题目环形?切掉一个跑贪心?O(n^2)超时了。。。
先计算m为每个最终糖果数量。
设An传给A1了k个糖果,
那么A1传给A2的糖果数为S1=k+A1-m,T1=A1-m
那么A2传给A3的糖果数为S2=k+A1+A2-2*m ,T2=A1+A2-2*m
那么A3传给A4的糖果数为S3=k+A1+A2+A3-3*m ,T3=A1+A2+A3-3*m
...
那么An-1传给An的糖果数为Sn=k+A1+A2+A3+...+An-n*m ,Tn=A1+A2+A3+...+An-n*m
我们最终目的是让我们最终目的是让S总和越小越好。
看出来了什么,我们只需求出最适合的k值,那么k是什么S最小呢?
k=T的中位数的相反数时最短!!!利用数轴想想,很容易。
#include<bits/stdc++.h> const int N=1000005; typedef long long ll; int a[N]; ll f[N]; int main(){int n;ll m=0,ans=0;scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",&a[i]),m+=a[i];m/=n;for(int i=1;i<=n;++i)f[i]=f[i-1]-m+a[i];std::sort(f+1,f+1+n);for(int i=1;i<=n;++i){ans+=abs(f[i]-f[(n+1)/2]);}printf("%lld",ans);return 0; }
View Code
转载于:https://www.cnblogs.com/Dream-Runner/p/10131604.html
bzoj1045: [HAOI2008] 糖果传递相关推荐
- BZOJ1045 HAOI2008糖果传递(贪心)
显然最后每个小朋友所拥有的糖果数就是糖果数总和的平均数.设该平均数为t. 环的问题一般断成链,但这个题似乎没有什么很好的办法在枚举断点的时候快速算出答案(我甚至不知道会不会有断点) 于是我们假装把他断 ...
- [BZOJ1045][HAOI2008] 糖果传递(数学相关)
题目描述 传送门 题目大意:有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1.求使所有人获得均等糖果的最小代价. 题解 设第i个人会给第i+1个人 xi ...
- bz10451045: [HAOI2008] 糖果传递
1045: [HAOI2008] 糖果传递 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2958 Solved: 1319 [Submit][S ...
- bzoj 1045: [HAOI2008]糖果传递
1045: [HAOI2008] 糖果传递 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4094 Solved: 1970 [Submit][S ...
- 【HAOI2008】【BZOJ1045】糖果传递(环形纸牌均分,前缀和)
problem 一个有n个数的环 每次只能向相邻的数移动,移动一个数代价为1 求让所有数相等的最小代价 solution 一:思路 1.纸牌均分问题每行答案是∑ni=1|i∗T/n−G[i]|∑i=1 ...
- 【BZOJ】1045: [HAOI2008]糖果传递(中位数)
http://www.lydsy.com/JudgeOnline/problem.php?id=1045 白书上有讲 没ac的坑点在,数据范围n<=1,000,000 #include < ...
- BZOJ 1045 [HAOI2008]糖果传递 ★(环形等分:中位数)
题意 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. 思路 假设平均数是x,且a1给an了k个(k<0说明是an给a1了-k个),那么总代价就 ...
- [HAOI2008]糖果传递 结论题
题目描述 有\(n(n<1000000)\)个小朋友坐成一圈,每人有\(a_i\)个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为\(1\),求使所有人糖果数相等的最小代价. 暴力 ...
- luogu P2512 [HAOI2008]糖果传递
传送门 Time cost: 35min 环形均分纸牌 我们再回顾一下均分纸牌 1 scanf("%d",&n); 2 for(i = 1; i <= n; i++) ...
最新文章
- const int * 、int * const、int const* 、const int a(){ } 和int a()const { }的区别和联系
- 编译-C语言库FFTW支持iOS平台的静态库
- 修改octave的editor的背景颜色
- textview 背景变形_嘉兴海宁市家庭别墅背景墙装修供应——零度木门厂家
- UVA1585 UVALive3354 Score【水题】
- 了解OutOfMemoryError异常 - 深入Java虚拟机读后总结
- Vuex的官方文档笔记
- 关于WIN11使用SecoClient接收返回码超时问题
- 使用Docker部署mongo后 使用Robo 3T、Studio 3T( MongoChef )在 create databse 创建数据库时的掉坑笔记
- 4G5G学习过程中整理的专业名词的符号简称
- java 图片转pdf_在Java语言中将图像转换为PDF?Spire.PDF for Java轻松搞定!
- NPS——搭建属于你的内网穿透平台
- mysql 临时表联表查询_一、MySQL中使用从表A中取出数据来更新表B的内容例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin。SQL语言中不...
- iOS开发之获取实时气压、相对高度
- dd命令详细(好文收藏)
- 区别samtools faid产生的.fai文件功能和bwa index 产生的四个文件的功能
- 监控他人摄像头,并发送图片到邮箱
- 信息安全产品体系的介绍
- linux7 inittab没有,CentOs7 7个运行级别介绍,(CentOs7 inittab在使用systemd时不再使用)...
- 四十六、基础框架(四)字符串物件
热门文章
- PHP - NetBeans中调试PHP
- 什么是Windows Service应用程序?(转)
- 官方消息:微软再次提醒IE浏览器将于6月15日停止支持
- 技术无罪?谷歌AI伦理团队负责人被解雇
- 华为机试题1:计算字符串最后一个单词的长度,单词以空格隔开。
- linux后台运行cat命令,Linux程序前台后台切换
- 对Fragment生命周期的理解以及其与Activity的关联
- kubernetes不同的命名空间下的容器能通信吗_超长干货 | Kubernetes命名空间详解
- php如何压缩txt文件怎么打开,PHP-压缩txt文件,同时保持文件扩展名
- python爬快手个人介绍个性_快手个性个人介绍句子签名 快手自己介绍模板句子...