UVA_10041

这个题目是一个贪心的题目。

如果设按升序排列的si的数组为s[],那么Vito的位置一定为s[(r-1)/2]。对于这一点,我们分两种情况进行讨论:

①如果si的数量为奇数,那么Vito的位置一定取数组s[]中间的那个值s[(r-1)/2]。因为如果周围的值和s[(r-1)/2]相同的话,Vito的位置左右移动不会产生影响,但如果周围的某个值s[i]不和s[(r-1)/2]相同,倘若Vito的位置移到了这个值上面,可以计算得出,总距离至少增加了abs(s[i]-s[(r-1)/2])(如果s[i]不和s[(r-1)/2]紧邻的话,会增加的更多)。

②如果si的数量为偶数,那么Vito的位置可以是[ s[(r-1)/2] , s[(r-1)/2+1] ]这个闭区间中的任意一个值。这点我们同样可以用反证法进行证明。

之后便只需要将所有的距离加起来即可。

#include<stdio.h>#include<string.h>#include<stdlib.h>int s[510];int cmp(const void *_p,const void *_q){int *p=(int *)_p;int *q=(int *)_q;return *p-*q;}int main(){int i,j,k,t,r,sum;    scanf("%d",&t);while(t--)    {        scanf("%d",&r);for(i=0;i<r;i++)            scanf("%d",&s[i]);        qsort(s,r,sizeof(s[0]),cmp);        k=s[(r-1)/2];        sum=0;for(i=0;i<r;i++)            sum+=abs(s[i]-k);        printf("%d\n",sum);    }return 0;    }

转载于:https://www.cnblogs.com/staginner/archive/2011/09/21/2184510.html

UVA 10041 Vito's Family相关推荐

  1. UVa 10041 - Vito's Family

    [链接] http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&p ...

  2. UVA - 10041 Vito's Family

    题目大意:给出所有邻居的位置,要求找到一个位置,使得该位置到所有邻居家的总和最小 解题思路:单纯的找中位数,先排序, 然后将数组遍历一遍求的最小值 #include <cstdio> #i ...

  3. UVa Problem 10041 Vito’s Family (Vito 家族)

    // Vito's Family (Vito 家族) // PC/UVa IDs: 110401/10041, Popularity: A, Success rate: high Level: 1 / ...

  4. π-Algorithmist分类题目(1)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(1) Sorting UVAL ...

  5. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  6. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  7. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  8. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  9. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

最新文章

  1. MySQL8常见客户端和启动相关参数
  2. 四天人工智能 python入门体验课_百度深度学习7天打卡营,用Python+AI识别“青你2”小姐姐的高颜值...
  3. centos 安装低版本内核_Docker安装教程
  4. 寻找先序遍历中第k个节点
  5. mysql数据库安全配置规范_MySQL数据库安全配置
  6. jbpm知识点——state
  7. Linux系统中使用netcat命令的奇技淫巧
  8. 证明一个距离空间是完备的
  9. 分号在各种编程语言中的作用
  10. 关于骨骼(Skeleton)、绑定(Rigging)、蒙皮(Skinning)、刷权重(Weight Painting)那些事儿(9月3日 更新)
  11. [转载]dilated conv带孔卷积、pooling层提高感受野 反卷积 的理解
  12. 箱形图(python画图)
  13. Python学习笔记-北京图灵学院-变量-20200528
  14. 关于图片转base64的加密解密
  15. 阿里P8熬了一个月肝出这份32W字Java面试手册,在Github标星31K+
  16. 高手如何做全网整合营销推广?全网营销方法和策略有哪些?
  17. cherry Tree的严重漏洞
  18. IOS仿支付宝首页滑动效果
  19. 什么样的知识付费系统功能,更有利于平台与讲师发展?
  20. 浅谈 MySQL 连表查询

热门文章

  1. 区块链c端应用小程序_区块链如何真正起作用? 我建立了一个应用程序向您展示。...
  2. javascript_治愈JavaScript疲劳的研究计划
  3. PC端微信小程序wxapkg解密
  4. Spring Cloud应用开发(一:使用Eureka注册服务)
  5. html5图片灰度显示,HTML5 组件Canvas实现图像灰度化
  6. 线程组多次调用_详细分析 Java 中启动线程的正确和错误方式
  7. 1143 Lowest Common Ancestor(建树与不建两种思路)
  8. 软件测试培训分享:做软件测试需要掌握数据库的知识吗?
  9. 参加Python培训后能干嘛
  10. ThreadLocal的使用方法