洛谷 1316 丟瓶蓋

2021-09-22 18:12:09 字數 843 閱讀 1915

題目描述

陶陶是個貪玩的孩子,他在地上丟了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個瓶蓋座標。輸出格式 僅乙個整數,...