2654 最小距離最大

2021-10-05 06:49:32 字數 952 閱讀 5017

題目描述:

給出n個位置(數軸上的座標值),從中選出k個,讓這k個位置相鄰兩個之間的距離(相鄰位置座標的差值)盡可能的大(盡可能大的意思是這k-1個距離的最小值盡量大)。輸出這個最大的最小值。

樣例解釋:選位置:1 5 9。

輸入

第一行:2個數n和k(2 <= n <= 100000, 2 <= k <= 10000, k <= n)

後面n行:每行乙個數pi,表示具體位置(0 <= pi <= 10^9),位置是無序的。

輸出

輸出乙個數,對應最大的距離。

輸入樣例

5 3135

79輸出樣例

4解題思路:

其實跟切木頭那題是一樣的,首先明確要二分誰,我們這題是要二分距離的長度,如果這個距離對應的段數+1(也就變成了個數),如果滿足》=k,我們就說他們是合法的,那麼此時我們就去考慮,是否還能將這個距離的大小二分的更大

核心**:

完整**:

#include

using

namespace std;

long

long n,k,a[

100010

],tot;

intchoose

(int x)

return tot;

}int

main()

cout << l << endl;

return0;

}

2654 最小距離最大

問題 給出n個位置 數軸上的座標值 從中選出k個,讓這k個位置相鄰兩個之間的距離 相鄰位置座標的差值 盡可能的大 盡可能大的意思是這k 1個距離的最小值盡量大 輸出這個最大的最小值。樣例解釋 選位置 1 5 9。輸入 第一行 2個數n和k 2 n 100000,2 k 10000,k n 後面n行 ...

最小距離最大值問題

def check2 a,m,x k,c 0,0 for i in range 1,len a if a i a k x 當前距離小於x,刪除元素a i c 1 else 當前距離不小於x,更新左邊界 k i return c m def distance a,m left,right,ans 1,...

聚類分析 最大最小距離法練習

資料集 0 00 1 4 44 5 5 45 5 1 0 用最大最小距離法進行聚類分析 from fileutil import fileutil from mathutil import mathutil import math x fileutil.openfile 2 1.txt 資料 z 聚...