poj 1723 中位数 最近在看一些中位数的东西,然后顺便也看了些题目。poj 1723不仅要求到水平位置的最短距离和,还要求水平都相邻的排成一排的最短距离和,即士兵都站成一列。 到y轴的距离好办,按y轴坐标排序,求中位数,然后求所有到中位数的距离和。 但是在x上怎么样才能最短呢?百思不得其解啊,最后看了这...
上那么就达到我们的目的了,下面的代码中Select函数就是求一个数组的中位数。 对于POJ 1723题,很显然y的选择是中位数即可,x的选择需要转换一下也变成求中位数了。题目中描述,最后要达到的效果是每个士 兵都占成一横排,而且彼此相邻,也就是y相同,但是x系列是k,k+1,k+2,...,k+n-1。那么如何从原来的x0...
SOLDIERS(POJ 1723) 这个题和算法书上的2.22题类似,因此y轴只要求出中位数,然后所有的点都要移动到中位数。 x轴的情况有点不同, 想了好久终于想明白了。 首先将x升序排序(因为最终的相对位置是不变的),然后设首个元素的基准点为P,则|x[0] - (p+0)| + |x[1] - (p+1)| + |x[2] - (p+2...
POJ 1723-SOLDIERS http://acm.pku.edu.cn/JudgeOnline/problem?id=1723 大意,给定一堆点的坐标,每个点可以上下左右一格一格地移动。要把这堆点一个接一个地排列在一条水平线上,求最少的移动步数。 数学思维的题目啊……我知道我... POJ 1723 Soiders 题意:一些士兵站在矩阵的一些方格内,现要把他们移...
分治算法--士兵排队(poj1723) 技术标签: poj 算法 编程 分治算法 士兵排队【问题描述】 在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点由整数最表(x,y)表示。士兵可以沿着网格边上、下、左、右移动一步,但在同一时刻一个网格上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列...
POJ 1723 士兵排队 C语言实现 ** ** 原文 ** Description N soldiers of the land Gridland are randomly scattered around the country. A position in Gridland is given by a pair (x,y) of integer coordinates. Soldiers can move - in one move, one soldier can go one unit up, down, left or...
算法导论_中位数与带权中位数。poj 1723 2011-11-03 14:14 −... sleeper_qp 0 1067 带权中位数/sgu 114 Telecasting station 2012-12-16 17:08 −题意 百慕大的每一座城市都坐落在一维直线上。这个国家的政府决定建造一个新的广播电视台。经过了许多次试验后,百慕大的科学家们提出了一个结论,在每...
poj1723 题意:一些士兵站在矩阵的一些方格内,现要把他们移动到一横排,并连续地排成一队,问最少需要移动多少步。 分析:先将他们移动到同一横排,这横排应该是他们纵坐标的中位数,才能使得此过程总步数最少。然后要把他们紧凑起来。我们先把横坐标排序,并假设起点是a,那么我们就是要求i=1~n,abs(a+i - xi)...
题解POJ1723 【SOLDIERS】 题目链接:Link Problem Solution 首先我们可以发现:当安排好一个对应的移动方案后,每个士兵的移动的最短距离必然是一个曼哈顿距离。 设从左到右依次对应的士兵分别位于(x1,y1),(x2,y2),...,(xn,yn)(x1,y1),(x2,y2),...,(xn,yn),则答案为 $ \...
,这个很容易看出是货仓选址问题,k取y[i]的中位数就可以了。 对于横向的问题,同样推一下公式, ,推到这里,我们把与i相关的项全部合在了一起,只要把x[i]-i看作一个整体,这个子问题也是中位数问题。 代码 //poj1723#include<cstdio>#include<algorithm>#include<cmath>#definemax(a,b) (a>b?a:b)#...