題目描述陶陶是個貪玩的孩子,他在地上丟了a個瓶蓋,為了簡化問題,我們可以當作這a個瓶蓋丟在一條直線上,現在他想從這些瓶蓋裡找出b個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢?
輸入輸出格式
輸入格式:
第一行,兩個整數,a,b。(b<=a<=100000)
第二行,a個整數,分別為這a個瓶蓋座標。
輸出格式:
僅乙個整數,為所求答案。
輸入輸出樣例輸入樣例#1:
5 31 2 3 4 5
輸出樣例#1:2
說明限時3秒
解釋:看到最小最大,很明顯的套路就是二分答案轉變成判斷問題,那麼我們有了最小值x只需要判斷其可分的最大長度,如果大於b那可以更加大。其中用到了dp,dp[i]為1-i的最大值那麼dp[i]=max(max(dp[i-1,1),dp[find(s[i]-x)]) 其中find(x)是找小於等於x的最大下標
">#include#include#define n 100003
using namespace std;
int a=0,b=0;
int s[n]=;
int dp[n]=;
int find(int val)
int main()else r=mid-1;
}cout
}
洛谷 P1316 丟瓶蓋
陶陶是個貪玩的孩子,他在地上丟了a個瓶蓋,為了簡化問題,我們可以當作這a個瓶蓋丟在一條直線上,現在他想從這些瓶蓋裡找出b個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢?輸入格式 第一行,兩個整數,a,b。b a 100000 第二行,a個整數,分別為這a個瓶蓋座標。輸出格式 僅乙個整數,...
洛谷 P1316 丟瓶蓋
題目描述 陶陶是個貪玩的孩子,他在地上丟了a個瓶蓋,為了簡化問題,我們可以當作這a個瓶蓋丟在一條直線上,現在他想從這些瓶蓋裡找出b個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢?輸入輸出格式 輸入格式 第一行,兩個整數,a,b。b a 100000 第二行,a個整數,分別為這a個瓶蓋座標...
洛谷P1316 丟瓶蓋
陶陶是個貪玩的孩子,他在地上丟了a個瓶蓋,為了簡化問題,我們可以當作這a個瓶蓋丟在一條直線上,現在他想從這些瓶蓋裡找出b個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢?輸入格式 第一行,兩個整數,a,b。b a 100000 第二行,a個整數,分別為這a個瓶蓋座標。輸出格式 僅乙個整數,...