貪欲アルゴリズム - 最適な負荷の問題
最適なローディングの問題:船負荷多くのコンテナが船に積載されたように容器の重量は、私は、ボリュームが無制限に含まれている場合には、ウィスコンシン、Cです。
貪欲戦略:第一の容器手段軽量
時間計算:T(N)= O( nlogn)
主に二つの相:ソート- >積載
例
問題の説明:暁明のいとこは、彼のために小さな学習コンピュータプログラミングビデオの数を推奨、これらのビデオ再生時間の長さはまったく同じではありません。今、所定の時間、あなたは彼がビデオの最大数を見ることができたボブを伝えることができますか?(再生時間や各ビデオユニットに対する所定の合計時間分です)
エントリー
入力データの単一のセット
最初の行動のMn
時間の所与の長さM(分)(0 <N、M <= 1000)
Nビデオの数が表す
nは、続いて各ビデオ(映像再生当たりの再生時間を表す整数です。時間)は、1000以上の正の整数ではありません
サンプル入力
6 84
65 46 18 76 79 3
輸出
ビデオを見るには、アップXPの数を表す整数を出力。
サンプル出力
3
#include<iostream>
#include<algorithm>
#define MAXN 1000005
using namespace std;
int w[MAXN];
int main()
{
int c,n;
int sum = 0;
int tmp = 0;
cin >> c >> n;
for(int i= 1; i <= n; ++i)
cin >> w[i];
sort(w+1,w+1+n);
for(int i = 1; i <= n; ++i)
{
tmp += w[i];
if(tmp <= c)
++sum;
else
break;
}
cout << sum << endl;
return 0;
}