【题目描述】

在我还是一个小小小的程序猿时(虽然现在还是小小的程序猿的。。。),LJY他就很聪明了,可是他怎么教我都有不会做的题。。。
有一天,我被学校指派了任务,要去zjj的m个地方买东西,惨了我这老胳膊老腿。这是LJY看到我愁眉苦脸,走了过来,拿出zjj的地图把它神奇的分为100*100的网格,使每个我要去的目的地都落在网格之中(假设每个地方都不重叠),然后他说只要你在这些网格中任意选一个,你到各个目的地的总距离就会最小,我就百思不得其解了。
同样聪明的你们,能帮我解决问题吗?求出最短总距离。(注意:因为地形复杂,只能向横纵方向行走)

【输入】

第一行一个整数m<20,表示有m组测试数据,下面是m组数据;
每组第一行一个整数n<20,表示本组有m个目的地,下面的n行每行有两个整数0<=x,y<=100,表示某个目的地的坐标。
n行后是新一组的数据。

【输出】

每组数据输出到最小的距离和,回车结束。

【样例输入】

2
3
1 1
2 1
1 2
5
2 9
5 20
11 9
1 1
1 20

【样例输出】

2
44

解题思路

首先看题目看了很多遍,题目的意思都不太理解,刚开始把它当成简单的问题了,题目是“只要你在这些网格中任意选一个,你到各个目的地的总距离就会最小”,我以为是随便代入一个坐标去算就好了,但是事实不是这样的,只能继续审题。

看了n次题目之后,这个题大概是让我们求:图中哪一个点,到我们输入的m个坐标的距离之和最小,再看看这个题的数字不大,那么可以用最暴力的枚举,把所有数据输入之后,再把横坐标的1-100和纵坐标的1-100全部枚举一遍,这样把每一次枚举的和进行比较,最小的那个和就是答案。

接下来看看代码实现:

代码如下:

#include<stdio.h>
#include<math.h>//使用绝对值要用到的头文件
int main()
{int i,j,n,m,g,k;int sum=99999999;//把sum定义得大一点,用来比较出最小值 int a[105],b[105];scanf("%d",&m);//输入m组测试数据 for(j=0;j<m;j++){sum=99999999;//每一次测试数据计算完,要把sum赋成一个大值 scanf("%d",&n);//输入每一组测试数据的坐标数 for(i=0;i<n;i++){scanf("%d %d",&a[i],&b[i]);//用两个数组存入输入的坐标 } //接下来用两个循环来枚举100*100种情况 for(g=1;g<=100;g++){for(k=1;k<=100;k++){int s=0;//每次枚举完,记得把计数器归零 for(i=0;i<n;i++)//接下来把刚刚输入的坐标遍历 {s=s+fabs(g-a[i])+fabs(k-b[i]);}if(sum>s)//比较是否比前面枚举的和要小 {sum=s;//如果小则替换 }}}printf("%d\n",sum);}return 0;
}

有其他更简单,更快的方法,不使用枚举,可以尝试动态规划或者递归。

贪心算法——聪明的LJY相关推荐

  1. 基于贪心算法求解TSP问题(JAVA)

    前段时间在搞贪心算法,为了举例,故拿TSP来开刀,写了段求解算法代码以便有需之人,注意代码考虑可读性从最容易理解角度写,没有优化,有需要可以自行优化! 详细 代码下载:http://www.demod ...

  2. 【信息学奥赛一本通 提高组】第一章 贪心算法

    一.贪心算法的特点: 1.贪心选择: 所谓贪心选择是指应用同一规则,将原问题变为一个相似的但规模更小的子问题,而后的每一步都是当前看似最佳的选择,且这种选择只依赖于已做出的选择,不依赖未做出的选择. ...

  3. tsp java_基于贪心算法求解TSP问题(JAVA)

    前段时间在搞贪心算法,为了举例,故拿TSP来开刀,写了段求解算法代码以便有需之人,注意代码考虑可读性从最容易理解角度写,没有优化,有需要可以自行优化! 一.TPS问题 TSP问题(Travelling ...

  4. Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球

    860. 柠檬水找零 solution 不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5 class Solution:def lemonadeChange(self, bills ...

  5. 找零钱问题——贪心算法

    蓝桥杯--算法训练--找零钱 有n个人正在饭堂排队买海北鸡饭.每份海北鸡饭要25元.奇怪的是,每个人手里只有一张钞票(每张钞票的面值为25.50.100元),而且饭堂阿姨一开始没有任何零钱.请问饭堂阿 ...

  6. 贪心算法----过河问题

    问题: 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的桥边.如果不借助手电筒的话,大家是无论如何也不敢过桥去的.不幸的是,N个人一共只带了一只手电筒,而桥窄得只够让两个人同时过.如果各自单独过桥 ...

  7. NOJ1056地道——最小生成树+贪心算法

    地道 Time Limit(Common/Java):1000MS/3000MS          Memory Limit:65536KByte Total Submit:289          ...

  8. 渊子赛马(c语言贪心算法)

    题目描述 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为"战国时期".在魏国作官的孙膑,因为受到同僚庞涓的迫害,被齐国使臣救出后,到达齐国国都. 赛马是 ...

  9. 珍宝鸭的力扣练习(8):贪心算法练习合集

    1.贪心算法适用的问题 贪心策略适用的前提是:局部最优策略能导致产生全局最优解. 实际上,贪心算法适用的情况很少.一般,对一个问题分析是否适用于贪心算法,可以先选择该问题下的几个实际数据进行分析,就可 ...

最新文章

  1. Python 中常见的配置文件写法
  2. ubuntu 下使用KVM安装redhat/winxp
  3. r语言 回归分析 分类变量_R语言 | 回归分析(二)
  4. Linux系统(五)负载均衡LVS集群之DR模式
  5. DEDE无简略标题时显示完整标题
  6. html select 修改默认箭头样式,自定义select标签箭头样式
  7. SHA1签名工具类java
  8. Web前端程序员必备 前端面试题汇总(1)
  9. android 初始化变量,变量初始化 - Android Studio
  10. ASP.NET WebAPI构建API接口服务实战演练
  11. 1.程序员的自我修养---简介
  12. postman调试网站API接口提示需要先登录怎么办
  13. qwidget美化_Qt之控件美化
  14. 项目中better-scroll的常用配置、插件介绍
  15. 1.3 三种交换方式:电路交换、分组交换、报文交换
  16. echarts中的x轴y轴颜色,文字颜色改变
  17. Android 开机速度优化-----ART 预先优化
  18. Ubuntu 16.04安装32bit支持
  19. ios12升级, App应用崩溃闪退
  20. 南京大学软件学院2018保研夏令营经验

热门文章

  1. 【学习计算机组成原理】原码除运算
  2. python画三瓣树叶_python教你画一棵树
  3. 用c语言编写代码:统计一个文本中出现次数最多的字符,写一个程序,统计一段文本中,出现次数最多的英文字母的数量,同字母大小写视为同字母 例子: wq...
  4. 战队口号霸气押韵8字_校园运动会加油霸气押韵口号文案 2020最有特色的运动会口号...
  5. [经验分享] 分享一波超级良心、好用的趣味网站!
  6. 记一次诡异的摄像头调试经历
  7. 第07课:技术精进之道
  8. Vulnhub_HACKSUDO: THOR
  9. spark rdd分区与任务的关系
  10. C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析