羅区P2722合計はインフレスコア
https://www.luogu.org/problem/P2722
JDOJ 1697:インフレスコア
https://neooj.com/oldoj/problem.php?id=1697
説明
より多くの学生たちがいる幸せで私たちのチッタゴン高校(USACO)競争の中で得点。我々は、人々は、できるだけ多くのポイントを獲得することができるように私たちのコンテストを設計しようと、私たちはあなたの助けを必要としています。私たちは、いくつかの競争のカテゴリから選択することができます問題は、ここで「種」のコンテストのトピックの集合を指し、同じスコアを取得するための時間と同量のエネルギーを必要とするトピックのセットを解決するために。
あなたのタスクは、USACOのスタッフに伝えるためにプログラムを書くことで、それはそれぞれからでなければなりませんどのように多くのカテゴリを選択するための質問、所定の時間に競争の問題を解決し、最大値を獲得するために合計時間がかかるようにします。
入力は時間との戦いが含まれ、M(1 <= M < = 10,000)( 心配、あなたはトレーニングキャンプに行ってはいけませんそこに長い試合であろう)とN、1 <= N <= 10,000「タイプ」の数。
各ラインは、後に「ジャンル」を記述するための2つの整数を含む:
このトピックに対処するための最初の整数命令をあなたはスコア(1 <=ポイント<= 10000取得することができます )、 このトピックに必要な時間を解決するための第2の整数命令(1 <=分<= 10000 )。
あなたのプログラムは、我々はそれぞれの「種類」から選択する必要があります決定する必要があります競争の中で道路のタイトルをどのくらいの時間を作ることができます 最大スコアが得られる。
任意の対象の「ジャンル」からポイントの最大数は、任意の負でない数(0以上)。可能算出得られてもよいです。
入力
行1:M、時間と被写体N--レースの「タイプ」の数。
2-N + 1行の2つの整数:加工画分と各「タイプ」トピック。
出力
与えられた制限で最大のスコアを含む単一の行が得ることができます。
サンプル入力
サンプル出力
ヒント
4「種」から最初の2「種」は、2つのタイトルの3つの質問を選択し、選択
書式#include <cstdioを> する#include <アルゴリズム> 使用して 名前空間はstdを、 INTのN、M。 INT [ 10001 ]、B [ 10001 ]、DP [ 10001 ]。 INT メイン() { scanf関数(" %dの%のD "、&M、&N) 以下のために(int型 i = 1 ; iが<= N; iが++ ) のscanf(" %D%dの"、および[I]、&B [I])。 以下のために(int型 i = 1 ; iが<= N; iは++ ) のために(INT J = B [i]は、J <= Mであり、j ++ ) DP [J] = MAX(DP [J]、DP [JB [i]は] + [I])。 printf(" %dの" 、DP [M])。 リターン 0 ; }