C語言Pie問題(二分)

2021-10-02 07:55:34 字數 921 閱讀 4116

今晚把我搞自閉了,一直wa的一道題

在禿頭的道路上一去不復返。

大體意思就是你有n塊派,要平均分給f個朋友和自己,求最大體積。

在這裡我們就可以使用二分啦!

當你的中間取值都滿足條件時,說明比它小的都滿足條件,那麼此時下界就變為中間取值,當中間取值不滿足條件時,說明比它大的都不滿足條件,那麼這時候上界就變為中間取值。

由於題目輸入給的是派的半徑,因此我們需要轉化為體積(高為1,面積就是體積)。

那麼如何判斷中間值是否滿足條件呢???

求出每個派最多能分的人數(即派的面積除以中間值取整),再將人數相加,比較此時可分得總人數是否大於朋友數加自己(即f+1),若大於則中間值滿足條件,更改下界值,反之亦然。

注意將pi放在輸出時乘入可提高精度。pi=acos(-1)。

那麼來康康搞我心態的 **

#include

#include

#define pi acos(-1)

#define eps 1e-6

intmain()

while

(high-low>=eps)

if(sum>=f+

1) low=mid;

else high=mid;

}printf

("%.4f\n"

,low);}

return0;

}

就這麼乙個玩意,我wa超多次,是因為在sum+=(int)(s[i]/mid)這一步,我沒有加(int)!!!我也不知道為什麼不加強制轉換就是過不了,也許現在腦子不清醒,嚶嚶嚶。

UVALive 3635 Pie 二分答案

題意 有f 1個人來分n個圓形派,要求每個人得到的派必須是一整塊的,不能是幾塊拼在一起的,而且每個人得到的派的大小一樣,問每個人最多能得到的派的面積。思路 一開始拿到題目,我嘗試推公式,後來覺得實在找不到規律,看了書,發現是二分答案,把問題轉化為 是否可以讓每個人的到面積為x的派 因為派是不可以拼起...

HLG 1530 Pie 浮點二分

題意 有n個半價為ri圓柱形的蛋糕,有m人分,規則要求每乙個人得到的必須是一塊 可以不完整,但必須是一整塊,也就是不可以多塊組成 問如何分最多 思路 二分體積 可以先不乘pi 用體積除去每乙個人份的體積x得出最多可分y份,y x則符合,之前用了比較複製的方法超時了幾次 pi的精度要求也wa了幾次 i...

poj 3122 Pie 二分查詢

很簡單的二分 入門級的二分 水一下 這種題的意思對乙個區間內的值進行二分查詢,每次判斷是否滿足條件 其實 我的這個 還不完善,有幾步 廢操作,看似優化,實則拉高複雜度 留給入門的小夥伴思考吧 include include include includeusing namespace std con...