件名の説明:
例:
インタプリタを実装します:
貪欲な簡単な質問のニーズ分析
知識ポイント:
貪欲、カスタム事前に格納し、ソート
トピック分析:
売る魚、売り魚の必要時間、魚を食べる必要があるが、フィードの前に販売されていません
そこでは、bはその後、その後、魚を販売する必要があり、cがdよりも小さい場合、魚は、あまり餌を消費するためには、Dの部分を食べるようになる、B、魚が餌部品cを食べるようになる魚を販売し、魚を売っている場合。そして、計算、すなわち、C = * BDで、D =広告* BT。
したがって、すべての魚の優先順位の販売のために必要なフィードの数を計算するために、その後、上記の式(簡単な説明を持っているの並べ替えを達成するために、CMP機能)に基づいてソートすることで行う必要があります。
何トラバーサルが総供給を食べる魚の現在の残存数を格納するために使用されていない場合、魚のコストを計算します。
難易度:
あまりにも魚の主な優先順位を分析するだけでなく、困難な、かつ合理的なソートと予め記憶されていません
完全なコード:
#include <iostreamの> する#include <アルゴリズム> 使用して 名前空間STD; の#define MAX 100010 ロング ロングN-、 ロング ロング合計、食品、 構造体FISH { ロング ロングT; 長い ロングD; }すべて[MAX]; // Aの単純な定義魚 BOOLのCMP(魚、魚B){ // 解釈方言の比較関数 // 最初のパラメータが自分では、第二は、他の誰かである // 私は他の人より頭に近いキューう(比較条件が真である)場合部門 // ここでの状況があること、私は他の人を取る場合は、T D d人が自分トン乗じよりも大きい // 私が販売する以上の供給を必要とするならば、私はもっと近い頭に思い、ある、最初の販売Iの リターン* BT AD> AT * BD; } int型のmain() { (iOS版:: sync_with_stdio falseに); CIN >> N-; 合計 =食品= 0 ; // 計算を横断しないようにする、と星広大なストレージコストの前進として のために(int型私は= 0 ; I <N-; I ++ ) { CIN >>全ての[I] .T >> 全ての[I] 2.D; 合計 + = 全ての[I] 2.D; } ソート(すべて、すべて + N-、CMP ); //は、全体のプロセスが直接できるため、プライオリティキューを持っていない、と星の間の差 のために(int型 I = 0;私は<N-; I ++ ) { // COUT <<全[I] .T << '' <<全[I] 2.D << '\ N-'; 合計-すべて= [I] 2.D; // 除去するために費やさ販売魚 食+の合計* =すべての[I] .T; // プラス合計時間が魚を養うために必要な } COUTを << <<食品' \ N- ' ; の戻り 0 ; }