#include#include#include#includeusing namespace std;
const int n = 100010;
int n,m;
int arr[n];
bool check(double mid)
int main()
printf("%.2f\n",mid);
return 0;
}
直接解很難,而把問題轉化為在答案範圍內找解,看是否能符合要求則容易實現
找解採用二分查詢:能用二分的條件,不管答案在哪,每次二分不影響查詢
浮點二分的精度問題:
方法一:r - l <= 1e-k+2 (k為小數保留位數)
while (r - l > 1e-4)方法二:1e7 / check()函式時間複雜度 (迴圈固定次數)
for (int i = 0; i < 100; i++)acwing 790. 數的三次方根
整數二分
剪繩子題解 浮點數二分
有n根繩子,第i根繩子長度為li,現在需要m根等長的繩子,你可以對n根繩子進行任意裁剪 不能拼接 請你幫忙計算出這m根繩子最長的長度是多少。輸入格式 第一行包含2個正整數n m,表示原始繩子的數量和需求繩子的數量。第二行包含n個整數,其中第 i 個整數li表示第 i 根繩子的長度。輸出格式 輸出乙個...
浮點數二分
2 浮點數二分 模板 浮點數二分演算法模板 模板題 acwing 790.數的三次方根 bool check double x double bsearch3 double l,double r return l acwing790.數的三次方根 給定乙個浮點數n,求它的三次方根。輸入格式 共一行,...
整數二分和浮點數二分
注意點 1.有單調性一定可以二分,二分不一定需要單調性 2.二分本質 找到一種性質,將乙個區間一分為二,一部分滿足性質,另一部分不滿足性質,通過二分找到兩部分的邊界 3.二分一定有解,即能夠找到性質的邊界。無解通常跟題目有關。4.浮點數二分 精度足夠小時結束迴圈 或者 直接迴圈100次 while ...