01背包 动态规划
import java.util.Scanner;
//01背包
public class Pag01 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int m=input.nextInt(); //背包的容积
int n=input.nextInt(); //物品的数量
int[] v=new int[n+1]; //物品的体积
int[] w=new int[n+1]; // 物品价值
for (int i = 1; i < w.length; i++) {
v[i]=input.nextInt();
w[i]=input.nextInt();
}
input.close();
computer(m, n, w, v);
}
public static void computer(int m,int n,int[] w,int[] v)
{
int[][] c=new int[n+1][m+1] ;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if(v[i]<=j)
{
c[i][j]=c[i-1][j]>c[i-1][j-v[i]]+w[i]?c[i-1][j]:c[i-1][j-v[i]]+w[i];
}else{
c[i][j]=c[i-1][j];
}
}
}
System.out.println(c[n][m]);
}
}