パイハング電気半分1969

私の誕生日は来ていると、伝統的に、私はパイを提供しています。1つのだけでなくパイ、いいえ、私は様々な味の様々なサイズの数、それらのNを、持っています。私の友人のFは、私のパーティーに来ているし、それらのそれぞれは、パイを取得します。それは厄介に見えるので、これは、1つのパイのワンピースではなく、いくつかの小さな部分でなければなりません。この作品は、しかし1つの全体のパイすることができます。 

私の友人は非常に迷惑であり、そのうちの一つが他より大きな部分を取得する場合、彼らは文句を開始します。したがって、それらのすべてが、これは(パーティを損なうよりも優れている)甘やかされて育った取得いくつかのパイにつながる場合でも、同じサイズの(必ずしも均等に形のない)部分を取得する必要があります。もちろん、私も自分のためにパイを求めており、その部分はまた、同じサイズである必要があります。 

私たちのすべてを取得することができ、最大の可能なピースのサイズは何ですか?すべてのパイは、円筒形状であり、それらはすべて同じ高さ1を持っていますが、パイの半径は異なる場合があります。 

テストケースの数:正の整数とInputOneライン。次いで、各テストケースについて:
---を有する2つの整数N及びFの一つの行1 <= N、F <= 10 000:パイの数及び友人の数。 
--- 1 <= RI <= 10 000とr iをN個の整数の一つの行:パイの半径。 
OutputFor各テストケース、私と私の友人は、すべての答えは、せいぜい10 ^(の絶対誤差と浮動小数点数として指定する必要がありますサイズVのパイの部分を得ることができるよう可能な限り最大の体積Vと出力1つのライン-3).Sample入力

3 
3 3 
4 3 3 
1 24 
5 
10 5 
1 4 2 3 4 5 6 5 4 2

サンプル出力

25.1327 
3.1416 
50.2655 

アイデア:ちょうど貪欲トピックを見て、私は/最小値やケーキの最小値がある,, ,,両極端を行うために探して二分法を使用する自閉症、および、対象書きましたm個の最大値が最大のケーキだ!

次のステップは、面積がケーキのすべての部分を作ることであるかを決定することです/ミッドは、正の数の原理を利用し保持、個々の点ミッド領域があるとき,,ケーキの各部分は、いくつかの人々の量を提供できるかを決定することです。
ACコード:
#include <iostreamの> 
する#include <アルゴリズム> 
の#include <cmath> 
の#include <cstdioを>
 の#define N 10010
 の#define M_PI 3.1415926535898
 使用 名前空間STD。
二重ARR [N]。
INTのN、M。

INTの裁判官(ダブルX){
     int型の CNT = 0 以下のためにint型 i = 0 ; iがn <; iは++ ){ 
        CNT + = ARR [I] / X。
    } 
    であれば(CNT> = M)リターン 1 リターン 0; 
} 

int型のmain()
{ 
    int型のT。
    cinを >> トン。
    一方、(t-- ){ 
        CIN >> N >> M。
        M ++ ;
        int型のR;
        二重の合計= 0 ;
        以下のためにint型 i = 0 ; iがn <I ++は{)
            CIN >> Rと、
            ARR [I] = M_PI *のR * rを、// 保存每个蛋糕的面积
        }     
        
        ダブルロー、ハイ。
        ソート(ARR、ARR + N)。
         =のARR [ 0 ] / M。// 最小取值 
        高い=のARR [N- 1 ]。// 最大取值
        
        ダブル半ば=(高+低)/ 2 ; 
                
        一方、(ファブ(高-低)> 1E- 6 
        { 
            半ば =(ハイ+ロー)/ 2 
            
            もし(裁判官(MID))
            { 
                低い = ミッド。
            } 
            
            {  = ミッド。
            } 
        } 
        のprintf(" %.4lfする\ n "、半ば)。
    } 
    戻り 0 
}

 



おすすめ

転載: www.cnblogs.com/Accepting/p/11246232.html