poj1064(二分處理浮點型別技巧)

2021-07-24 06:10:27 字數 783 閱讀 3813

/*

translation:

給出n條電纜以及他們的長度,要從它們當中切取出k條長度相同的繩子。這k條繩子每條最長能夠有多長?

solution:

二分即可,浮點型別處理的一些技巧

note:

1:注意輸出的時候要做下floor處理

2:二分判斷退出的條件不能是認為切割條數等於k條就退出。這樣求出的不一定是最優解。正確姿勢是不斷讓它迴圈求解到某個預先

設定好的次數。這個次數不能太小,不然得不到最優解,不能設定太大,不然超時。

date:

2016.10.31

*/#include #include #include #include using namespace std;

const int maxn = 10000;

const int inf = 1e8;

int n, k;

double cable[maxn + 1];

int main()

double ans = maxlen, l = 0.0, r = maxlen;

int tmp = 100;

while(tmp--)

if(res < k) else if(res >= k)

} if(ans < 0.01) printf("0.00\n");

else printf("%.2lf\n", floor(ans * 100) / 100);

} return 0;

}

POJ 1064 二分搜尋

poj 1064 題目大意 有n條繩子,他們的長度分別為li,如果從他們中切割k條長度相同的繩子的話,這k條繩子每條最長能有多長?答案保留到小數點後2位 演算法分析 這個問題用二分搜尋可以非常容易的求得答案。讓我們套用二分搜尋的模型試著解決這個問題。令 條件c x 可以得到k條長度為x的繩子 則問題...

POJ1064 簡單二分

題意 有n條繩子,他們的長度分別為li。如果從他們中切割出k條長度相同的繩子的話,這k條繩子每條最長能有多長。答案保留到小數點後兩位。思路 二分搜尋的模型解決 求滿足某個條件c x 的最小 大 的x 這一問題。這個題裡 c x 可以得到k條長度為x的繩子 由於長度為li的繩子最多可以切出floor ...

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...