栓奶牛——二分
題目描述:
有n頭奶牛,有k個木樁,每個木樁有乙個位置,乙個木樁上只能拴一頭奶牛。由於奶牛好鬥,所以在拴奶牛的時候要求距離最近的奶牛的距離盡可能大。
例如n=4,k=6,木樁的位置為0,3,4,7,8,9(如最下面的圖)
此時,有許多拴牛方案,例如
0,3,4,9 此時最近距離為1(3,4之間)
0,3,7,9 此時最近距離為2
輸入n,k,p1三個整數(0≤p1≤100),其中p1為第1個木樁的位置,其他木樁pi(i≥2)的位置由下面公式算出:p[i]= p[i-1]+((p[i-1]2357+137) mod 10)+1
輸出乙個整數,即奶牛最近距離的最大值。
樣例輸入
25 70 99
樣例輸出
12資料範圍限制
2≤n≤100,n≤k≤100
二分演算法,找到最好的mid即可
要知道,奶牛是站得越開越好,即越向右越好
上**`
#include
using
namespace std;
int n,k,a[
110]
,ans;
intmain()
}if(sum>=n)
else
} cout
}
大佬如果有用給個贊哦!!! UPC 栓奶牛 二分法
有n頭奶牛 2 n 100 有k個木樁 n k 100 每個木樁有乙個位置,乙個木樁上只能拴一頭奶牛。由於奶牛好鬥,所以在拴奶牛的時候要求距離最近的奶牛的距離盡可能大。輸入1行 n,k,p1三個整數 0 p1 100 其中p1為第1個木樁的位置,其他木樁pi i 2 的位置由下面公式給出 pi pi...
二分法查詢詳解
二分法查詢,中間值若小於,則首元素換成中間元素的下一位 為什麼不換成中間元素?因為其實在比較中間元素的時候,已經進行了比較,沒必要再進行第二次比較 基本上都是採用測試類加功能實現類的樣式 1.是建立在已經排序的基礎上的 2.以下程式分析從小到大 3.這個陣列中沒有重複的元素 public class...
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...