[OpenJ_Bailian - 2795]トレジャーアイランド(貪欲)

トレジャーアイランド

説明:

KID日の使用航空機は、トレジャーアイランドに飛んだ多くの貴金属は、貴重な石の芸術KID品種の作品のようなよりも、上記があるが、そのような貴金属を拒否しないでください。しかし、彼だけポケット付き、ポケットは、物品Wの重量までロードすることができます。N-それぞれ金属重量に対して異なる島金属の種、  1、N-  2、...、N-  S、金属又は異なり、それぞれの種類ごとの合計値がVである  。1、V  2、。 ...、V  SKIDは金属の値がいったん離れて、できるだけ多くを撮りたい、と離れて金属の価値の多くを取るために彼を尋ねました。それは金属を任意に分割することができることに留意、及び金属の価値とその比例重量。

入力

ライン1は、入力のk個のセットに続いて、テストデータのグループ番号kです。 

各試験は、ライン1(1 <= W <= wは正の整数であり、3を占め 10000)、 ポケット軸受の上限を表します。第二列は正の整数、S(1 <= S <=である 100)、 金属種を表します。行3は、それぞれ、2S正の整数を有するN-  1、V  1、N-  2、V  2、...、N-  S、V  S、それぞれ第一、第二、...、S-金属用そして(1 <= Nの総重量の合計値  I  <= 10000 ,. 1 <V =  I  <= 10000)。 
出力

k行、入出力に対応する各行。出力は、小数点以下2桁まで正確でなければなりません。

サンプル入力

2 
50 
4 
10 100 50 30 7 34 87 100 
10000 
5 
1 43 43 323 35 45 43 54 87 43

サンプル出力

171.93 
508.00

トピックリンク:

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

この問題は、単純である4110 - OpenJ_Bailian変形の、まったく同じ権利

リンク:https://www.cnblogs.com/sky-stars/p/11073133.html

直接コードに、何も言うことはありません

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である。
     ためINTI = 0 ; 私は、n <; I ++)// 输入 
        CIN >> [I] .V >> [I] .W。
    ソート( + n)が、// 排序
    ためINTが i = 0 ; iは<、n iは++ 
    { 
        場合(= W> [i]は.W)
        { 
            合計 + = [I] .V。
            Wが - = [I] .W。
        } 
        そう であれば(W < [I] .W)
        { 
            ダブル T =([I] .V / [I] .W)* W。
            合計 + = T; 
            W = 0 ;
        } 
        そう であれば(Wの== 0 
        { 
            破ります
        } 
    } 
    のprintf(" %.1lfする\ n " 、合計)。
}

 

おすすめ

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