JavaScript
曼哈顿距离 标签描述

洛谷\(P1632\) 一、题目大意 求平面上\(1、2⋯n\) 二、解题思路 枚举,我们假设\(m\)个点的最小曼哈顿距离,我们假设汇集的点是\((x,y)\),则\(x\)必然可以选择\(n\)个点的横坐标中的一个,\(y\)也可以选\(n\)个点的纵坐标中的一个。所以我们枚举\(x\)和\(y\) 三、\(Code\) include<bits/stdc.h> usingnamespacestd; constintN=110; intn,x[N],y[N],dist[N],ans[N]; intmain(){ cin>>n; for(inti=0;i<n...

  drNKZp1HlHGf   2023年11月02日   34   0   0 i++曼哈顿距离cii++ci曼哈顿距离

洛谷\(P1889\) 问题简述 这道题我们可以换另一种思路去看待它,就容易理解了: 在一个平面上,把\(n\)个点排列在一条与\(x\)轴平行的直线的整点上,且相邻两点的距离为\(1\) 求一种排列方案,使得这\(n\)个点到目标位置的曼哈顿距离和最小。 解法综述 由于是求曼哈顿距离,所以可以将\(x\),\(y\) 首先,要找到最优的一列(使移动步数最少的一列),其实就是要找一条平行于\(x\)轴的直线,设此直线为\(y=k\),那么,每个点到这条线距离为\(|y_i-k|\),不难发现,当\(k\)是所有点纵坐标的中位数时,距离之和最小。 找到了这条直线之后,又该把每个点移到哪个位置才...

  drNKZp1HlHGf   2023年11月02日   46   0   0 i++曼哈顿距离cii++ci曼哈顿距离