ブルーブリッジカップアルゴリズム01リュックjava向上
952 ワード
試験問題のアルゴリズムは01リュックサックを高めます
資源制限時間制限:1.0 sメモリ制限:256.0 MB問題は所与のN個の物品を説明し、各物品には1個の重量Wと1個の価値Vがある.あなたはM重量のリュックサックを入れることができる.どのように装って最も価値があるかを聞く.品物は一つしかありません.入力フォーマット入力の第1行は、物品の個数とリュックサックの重量をそれぞれ表す2つの整数n,mを含む.以降、N行毎に2つの数WiとViを表示し、物品の重量と価値出力フォーマットを表す1行を出力し、1つの整数を含み、最大価値を表す.サンプル入力3 5 2 3 3 5 4 7サンプル出力8のデータ規模と約1<=N<=200、M<=5000とする. https://blog.csdn.net/HUANGCI666/article/details/105584913[01.バックパックの説明]
資源制限時間制限:1.0 sメモリ制限:256.0 MB問題は所与のN個の物品を説明し、各物品には1個の重量Wと1個の価値Vがある.あなたはM重量のリュックサックを入れることができる.どのように装って最も価値があるかを聞く.品物は一つしかありません.入力フォーマット入力の第1行は、物品の個数とリュックサックの重量をそれぞれ表す2つの整数n,mを含む.以降、N行毎に2つの数WiとViを表示し、物品の重量と価値出力フォーマットを表す1行を出力し、1つの整数を含み、最大価値を表す.サンプル入力3 5 2 3 3 5 4 7サンプル出力8のデータ規模と約1<=N<=200、M<=5000とする. https://blog.csdn.net/HUANGCI666/article/details/105584913[01.バックパックの説明]
import java.util.*;
public class Main{
static int w[];
static int v[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
v=new int[n];
w=new int[m+1];
for (int i = 0; i =w[i]) {
int li =v[i]+dp[i-1][j-w[i]];
dp[i][j]=Math.max(li, dp[i-1][j]);
}else {
dp[i][j]=dp[i-1][j];
}
}
}
System.out.println(dp[n-1][m]);
}
}