uva11300(数学)
题意:
n个人围成一圈,每个人都有一些硬币,,每个人只能给左右相邻的人硬币,问最少交换几个硬币,使每个人硬币一样多;
思路:
首先要求出平均数M,每个人的硬币为numi;那么对于1,他能给予4号x1个硬币,并从2号出得到x2个硬币,那么对于1可得numi - x1 + x2 = M;
同理可得numn-xn+x1 = M
就能得到:
x2 =x1-C1 (C1 = num1 - M)
x3 = M - num2 + x2 = 2M-A1-A2+x1 = x1-x2
...
最后所求为
|x1| + |x1-C1|+...+|x1-Cn-1|,要求这个最小,那么就是要x1为这些数的中位数;
求出x1,在计算和就行了;
AC代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
#define ll long longconst int N = 1000005;
ll num[N];
ll c[N];
int n;int main () {while(scanf("%d",&n) != EOF) {ll sum = 0;for(int i = 1 ; i <= n ; i++) {scanf("%lld",&num[i]);sum += num[i];}sum /= n ;c[0] = 0;for(int i = 1 ; i < n ; i++) {c[i] = c[i - 1] + num[i] - sum;}sort(c , c + n);ll x = c[n / 2];ll ans = 0;for(int i = 0 ; i < n ; i++) {ll temp = x - c[i];ans += fabs(temp);}printf("%lld\n",ans);}
}
uva11300(数学)相关推荐
- UVa11300 Spreading the Wealth(数学问题)
题意:给出n个人,每个人有一些金币,可以给一些金币左边或者右边的人,最终使得每个人有相同的金币,问最小的转移金币是多少? 思路:可以假定给金币方向是逆时间方向,值可能是正负.M表示最终每个人有的金币, ...
- UVA11300 Spreading the Wealth 分金币 C++ (数学推导)
参考算法竞赛入门经典训练指南 /* 最后每个人的金币:M = (A1+A2+...+An)/n(设当前每个人的金币为Ai) 设xi表示i给i+1传递给了xi个金币(xn表示n给1传递了xn个金币) 为 ...
- 群论中的拉格朗日定理(子群的阶必然能整除群阶---数学
前言:仅个人小记.本文记录的证明逻辑上不具有流畅性,主要是在一开始不流畅,拉格朗日神乎其技地引入了一个等价关系,进而实现了整个定理的证明,目前我没能给出拉格朗日是如何想到引入该等价关系. 最后给出推论 ...
- 通俗理解条件熵-数学
就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...
- 内积和外积的物理意义-数学
内积和外积的物理意义 Persistently关注 2018.07.31 14:28:46字数 277阅读 6,276 向量的内积 ab=ab cos(θ) 向量a和b的长度之积再乘以它们之间的夹角的 ...
- Ramsey定理数学
https://blog.csdn.net/qq_41551359/article/details/84036876 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上 ...
- 数学上各种空间概念的关系图
https://blog.csdn.net/cc1949/article/details/79744519 数学上有各种空间,概念容易混淆,为了记忆,整理出一张关系图. 目前不清楚无限维的内积空间是什 ...
- 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...
- js函数语法:ASCII 码的相互转换,字符串操作,数学计算
ASCII 码的相互转换 for (let i = 'a'.charCodeAt(); i <= 'z'.charCodeAt(); i++) {a.push(String.fromCharCo ...
最新文章
- flink集成springboot案例_Flink从流处理到流批一体的19个最佳实践
- [Android编程心得] Camera(OpenCV)自动对焦和触摸对焦的实现
- SQLServer 一些有用的语句
- java concurrentmap原理_Java集合番外篇 -- ConcurrentHashMap底层实现和原理
- VTK:网格之ClipFrustum
- 利用金山快盘云服务搭建自己的SVN服务器
- s6730堆叠_不再只是堆叠硬件 ivvi S6全方位评测
- 实现Java监视的12个步骤程序存在缺陷
- 用python内置函数算复杂度吗_Python减少代码量的两个内置函数
- WPF 绕圈进度条(一)
- 微软 Edge 浏览器加入对 ARM64 的原生支持
- Java项目导入eclipse后项目出现JRE System Library [JavaSE-1.8](unbound)
- Global GUI map for automation with VS.NET
- 最强 IOS系统改定位
- 衣米魔兽世界怀旧服:相关网友和测试玩家的提问,王乾亨以及衣米魔兽官方的解释与回答内容精选
- 如何更改微信标签名字_微信标签怎么设置?微信怎么批量设置好友标签?
- 基于JAVAWEB的高校行政管理系统
- Doom3bfg 技术说明
- Python 决策树计算熵、gini系数、误分率
- 微信最新数据:每天有 10.9 亿人打开微信,7.8 亿人进入朋友圈