[OpenJ_Bailian - 4110]サンタの贈り物-Santa Clauのギフト(貪欲)

サンタの贈り物-Santa Clauのギフト

 説明:

クリスマスは、お菓子の箱は、独自の価値や重みを持っている今、どのように異なるお菓子の箱、キャンディの各ボックスは、離れて任意のバルク組成に分割することができ、サンタの街で、配布の準備ができてお菓子を来ています。サンタさんのトナカイは唯一お菓子の一定の重量に耐えることができ、サンタクロースは、どのくらいのお菓子の値を求めるために取ることができます。

入力

最初の行は、それぞれ二つの部分、正の整数の数の菓子箱Nから成る(1 <= N <= 100)、トナカイは、Wの最大の正の整数の重量に耐えることができる(0 <Wを<10000)、スペースで区切られた2つの数字オープン。n行キャンディのボックスに対応する各残り、二つの部分、スペースで区切られた正の整数キャンディボックス重量正の整数であり、v Wのすなわち値から成ります。

出力

サンタクロースは、キャンディの合計値の最大出力を取る小数を予約することができます。改行で終わる一行として出力。

サンプル入力

4 15 
100 4 
412 8 
266 7 
591 2

サンプル出力

1193.0

トピックリンク;

https://vjudge.net/problem/OpenJ_Bailian-4110

これは、水の問題を比較し、それが降順を取ることができます贈り物の平均値に応じて、各ギフトの平均値を見つけるための場所です

ACコード

書式#include <iostreamの> 
の#include <cstdioを> 
する#include <fstreamの> 
の#include <アルゴリズム> 
書式#include <cmath> 
の#include <両端キュー> 
の#include <ベクトル> 
の#include <キュー> 
の#include < 文字列 > 
の#include <CStringの> 
書式#include <マップ> 
書式#include <スタック> 
の#include < 設定 > 
書式#include <sstream提供>
#define MOD 1000000007件
 の#define EPS 1E-6
 の#defineっ長い長い
 の#define INF 0x3f3f3f3f
#define ME0(X)のmemset(X、0、はsizeof(x))を
 使用して 名前空間STD;
 構造体ギフト{
     ダブルV、W;
     //はw / vのサイズソート応じて定義され、大きな優先W / V、つまりギフト平均高価値優先
    BOOLの 演算子 <(constのギフト&C)のconst 
    { 
        戻り V / wc.v / CW> EPS; 
    } 
}; 
ギフト[ 105 ];
 int型N-;
 二重 Wであり; // 最大重量負担トナカイ
ダブル = SUM 0 ; // 最大値離れギフト
INT メイン()
{ 
    CIN >> N - >>Wである。
     ためint型 I = 0 ; Iは、N <Iは++)// 入力 
        CIN >> A [I] .V >> A [I] .W、
    ソート(A、A + N-); // ソート
    するためのINT I = 0、I <N - 、I ++ 
    { 
        // 現在の重量が軽量化に耐えることができ、離れてすべて取るために、FCLの贈り物の重量に耐えることができるよりも大きいか否かを判断する
        IF(Wは> = [I] .W )
        { 
            SUM + = A [I] .V; 
            Wは - = [I] .Wを; 
        } 
        //は電流がFCLギフトの重量を取ることができる量よりも小さい場合、それは離れてギフトの重量に耐えることができ、決定、 0の重量負担を軽減することができる
        他の IFを(Wは< A [I] .W)
        {
            ダブル T =([I]・V / A [I] .W)* Wであり、
            SUM + = T; 
            Wは = 0 ; 
        } 
        そう IF(== Wは0// 、その重み0をとることができる、すなわち、取ることができませんギフトは、ループを終了し
        、{
             BREAK ; 
        } 
    } 
    のprintf(" %.1lf \ N- " 、SUM); 
}

 

おすすめ

転載: www.cnblogs.com/sky-stars/p/11073133.html