題意:有n條繩子,他們的長度分別為li。如果從他們中切割出k條長度相同的繩子的話,這k條繩子每條最長能有多長。答案保留到小數點後兩位。
思路:二分搜尋的模型解決:「求滿足某個條件c(x)的最小(大)的x」這一問題。
這個題裡
c(x):可以得到k條長度為x的繩子
由於長度為li的繩子最多可以切出floor(li / x) 段長度為x 的繩子,因此
c(x):(floor (li / x) )的總和是否大於或等於k
**如下
#include #include #include #includeusing namespace std;
long long n,k;
const int maxn = 1e6+10;
double l[maxn];
int inf = 0x3f3f3f;
bool c(double x)
int main()
printf("%0.2f\n",floor(ub * 100) /100);
/*輸出要注意,不是簡單的0.2f就完事。因為會自動四捨五入*/
}return 0;
}
POJ 1064 二分搜尋
poj 1064 題目大意 有n條繩子,他們的長度分別為li,如果從他們中切割k條長度相同的繩子的話,這k條繩子每條最長能有多長?答案保留到小數點後2位 演算法分析 這個問題用二分搜尋可以非常容易的求得答案。讓我們套用二分搜尋的模型試著解決這個問題。令 條件c x 可以得到k條長度為x的繩子 則問題...
poj 1064 二分答案
傳送門 problem 1064 題意 有n條繩子,長度分別為 length 1,2,3,n 如果從它們中切割出k條長度相同的繩子,這k條繩子每條最長有多長?結果保留兩位小數。題解 二分可能的長度。ac 精度問題 解範圍為 l,r 27double l 0,r maxl 1 28 for int i...
POJ 1064 二分搜尋
poj 1064 題目大意 有n條繩子,他們的長度分別為li,如果從他們中切割k條長度相同的繩子的話,這k條繩子每條最長能有多長?答案保留到小數點後2位 演算法分析 這個問題用二分搜尋可以非常容易的求得答案。讓我們套用二分搜尋的模型試著解決這個問題。令 條件c x 可以得到k條長度為x的繩子 則問題...