POJ 3122(二分查詢的應用 分披薩)

2021-09-19 12:27:53 字數 846 閱讀 5926

題目大意:主人過生日,f個人來給他慶生,但是只有n個pizza,現在要將n個pizza分給f+1個人(包括主人自己),問每個人能分到pizza的最大體積是多少,要求每個人所分的pizza只能是從乙個pizza上切下來的,不可以用好多小塊拼湊成體積相同的pizza。

思路:利用二分查詢的方法解決該問題。

(1)首先找到所有pizza中面積最大的pizza(因為所有pizza的高度都是1,所以找最大體積的問題降維成找最大面積的問題)。

(2)取最大面積的一半,作為每個人均攤pizza的面積,然後記錄每個pizza按照該面積能夠切分多少塊,最終求和。

(3)將第二步計算的結果與人數f+1對比,如果比人數多,每個人有可能再多分一些;如果比人數少,證明每個人還要在少分一些

基於以上思路**實現如下:

#include const double pi = 3.14159265359;//注意π的精度,如果為3.141592653時,提交時結果為wrong answer

int pieri[10001];

double precision = 1e-4;

int main()

double low = 0;

double high = maxvalue;

double mid = 0;

while(high - low > precision)

}if(sum >= npersonnum + 1)

low = mid;

else

high = mid;

} printf("%.4lf\n", mid * pi);

} return 0;

}

poj 3122 二分查詢

鏈結 poj 3122 題意 我生日派對時,準備了n個圓柱形的pie,半徑比一定相同,但高都為1,邀請了f個朋友,加上自己一共f 1人,需要將n個pie分給f 1個人 要求 每個人分得的pie尺寸要一樣大,並且同乙個人所分的pie要是從同乙個pie上得到的,n個pie分完後可以有剩餘 求 每個人最多...

POJ 3122 分披薩(二分查詢)

有 n 塊披薩 大小不一樣 f 個人分,包含主人自己 f 1 人 每人吃的披薩必須是一塊披薩上切下來的。每個人吃的披薩相等,披薩可以有剩餘。求每人吃的最大披薩面積。description 有 n 塊披薩 大小不一樣 f 個人分,包含主人自己 f 1 人 每人吃的披薩必須是一塊披薩上切下來的。求 au...

poj 3122 二分 分蛋糕

題意 每組測試案例包括了,蛋糕的塊兒數,朋友數,以及所有高度為1的 圓柱形蛋糕的半徑,要求從這些蛋糕中分一塊分別給朋友和自己 f 1 並且每一塊蛋糕要來自同一塊兒大蛋糕,因為這樣看起來美觀,求最後每個人得到的蛋糕大小 pi s include include include define pi 3....