首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
航海
[编程题]航海
热度指数:655
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
二维平面的海上有
只船,每只船所在位置为
,每只船还有一个权值
,现在他们需要聚在一起商讨捕鱼大业,他们想请你找到一个点使得该点到其他点的带权曼哈顿距离之和最小。带权曼哈顿距离=实际曼哈顿距离
权值。
输出表示最小的带权输出最小的带权距离之和。
示例1
输入
2,[2,1],[1,1],[1,1]
输出
1
说明
可以选取(1,1)点,答案为1
备注:
数组下标从0开始
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(1)
邀请回答
收藏(10)
分享
纠错
提交结果有问题?
1个回答
6篇题解
开通博客
漫漫云天自翱翔
发表于 2021-08-13 22:28:27
题解一: 数学方法题解思路: 首先,给出结论给定N个点(x1,x2...xn),要找到使得 :最小得x; 此点比然是其中位数。证明:首先对N个点排序.假设该点在N个点中xi:如果这个点往右移xi+1两者相减,可得向右移距离变化:xi+1-x1始终大于零,所以当i<=n/2时,(2i - n)小
展开全文
Maokt
发表于 2021-08-05 22:40:15
算法思想一:暴力法 解题思路: 对于求解本题要寻找一个点使得该点到其他点的带权曼哈顿距离之和最小,自然想到遍历所有点,对于每一个点求一个带权曼哈顿距离,然后找出最小值即可。 由题值: A点到B、C两点之间的带权曼哈顿距离: 若单独计算x这一维的曼哈顿距离有:
展开全文
Tag_Kausal
发表于 2020-02-07 11:08:46
首先来看一个简化版的问题,一条线上有个点,为了把所有点移到一起,怎么移动花费最小?假设我们现在选取了一个位置,它左边及处有个点,右边有个点,现在总花费为。我们现在让右移一个单位,记为,那么很明显处的花费变成了,可以发现从左到右花费是先减少再增大的,不难得知这是一个单峰函数,且在的时候取得最值,其实这
展开全文
xqxls
发表于 2021-08-09 14:35:37
题意整理 二维海面上有n只船,每只船有一个坐标,以及一个权值。 求最小的带权曼哈顿距离。 方法一(求极值) 1.解题思路 简要分析:首先考虑一个简化版的情况,一维横轴上有n个点,要从这个n个点中,找到一个点,使得其他点移动到这个点的距离之和最小。假设当前处于第x个点的位置(位置p),当前的最小移
展开全文
认认真真coding
发表于 2021-08-05 16:22:13
题目描述二维平面的海上有n只船,每只船所在位置为(Xi,Yi),每只船还有一个权值Wi,现在他们需要聚在一起商讨捕鱼大业,他们想请你找到一个点使得该点到其他点的带权曼哈顿距离之和最小。带权曼哈顿距离=实际曼哈顿距离∗权值。输出表示最小的带权输出最小的带权距离之和。 方法一:暴力解法 求解思路对于求解
展开全文
摸鱼学大师
发表于 2021-08-03 17:43:31
思路: 题目的主要信息: 一共有n艘船,默认从其中选出一艘船的位置到其他所有船的带权曼哈顿距离最小。 带权曼哈顿距离公式:如果AB两点的坐标分别为,,权重分别是与,则从A到B的曼哈顿距离 = ,我们可以发现二者是分开算的,因此我们单独计算,然后相加。 方法一:暴力法具体做法:对于C点到AB两点的
展开全文
问题信息
二分
思维
排序
难度:
1条回答
10收藏
6639浏览
热门推荐
通过挑战的用户
查看代码
编程好难啊噗
2022-03-02 23:18:38
牛客87965...
2022-02-21 20:03:18
牛客23015...
2022-02-16 10:08:00
syfzzz
2021-12-14 12:58:13
牛客71017...
2021-10-15 02:39:42
相关试题
分组
基础数学
二分
评论
(11)
扔骰子
排序
贪心
思维
评论
(3)
牛牛排队
排序
思维
快速幂
评论
(9)
字符消除
动态规划
滴滴
评论
(0)
小O的字符串重排
字符串
贪心
OPPO
评论
(1)
航海
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ public long MinimumDistance (int n, int[] x, int[] y, int[] w) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型vector x * @param y int整型vector y * @param w int整型vector w * @return long长整型 */ long long MinimumDistance(int n, vector
& x, vector
& y, vector
& w) { // write code here } };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param n int整型 n # @param x int整型一维数组 x # @param y int整型一维数组 y # @param w int整型一维数组 w # @return long长整型 # class Solution: def MinimumDistance(self , n , x , y , w ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ public long MinimumDistance (int n, List
x, List
y, List
w) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ function MinimumDistance( n , x , y , w ) { // write code here } module.exports = { MinimumDistance : MinimumDistance };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param n int整型 n # @param x int整型一维数组 x # @param y int整型一维数组 y # @param w int整型一维数组 w # @return long长整型 # class Solution: def MinimumDistance(self , n , x , y , w ): # write code here
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ func MinimumDistance( n int , x []int , y []int , w []int ) int64 { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param xLen int x数组长度 * @param y int整型一维数组 y * @param yLen int y数组长度 * @param w int整型一维数组 w * @param wLen int w数组长度 * @return long长整型 */ long long MinimumDistance(int n, int* x, int xLen, int* y, int yLen, int* w, int wLen ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param n int整型 n # @param x int整型一维数组 x # @param y int整型一维数组 y # @param w int整型一维数组 w # @return long长整型 # class Solution def MinimumDistance(n, x, y, w) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ def MinimumDistance(n: Int,x: Array[Int],y: Array[Int],w: Array[Int]): Long = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ fun MinimumDistance(n: Int,x: IntArray,y: IntArray,w: IntArray): Long { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ public long MinimumDistance (int n, int[] x, int[] y, int[] w) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ export function MinimumDistance(n: number, x: number[], y: number[], w: number[]): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ func MinimumDistance ( _ n: Int, _ x: [Int], _ y: [Int], _ w: [Int]) -> Int64 { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 n * @param x int整型一维数组 x * @param y int整型一维数组 y * @param w int整型一维数组 w * @return long长整型 */ pub fn MinimumDistance(&self, n: i32, x: Vec
, y: Vec
, w: Vec
) -> i64 { // write code here } }
2,[2,1],[1,1],[1,1]
1