总结:
本题使用动态规划
import java.util.*;
public class Main{
public static void main(String arg[]){
Scanner sc = new Scanner(System.in);
int vol = sc.nextInt();//箱子容量
int num = sc.nextInt();//物品数量
int[] v = new int[num+1];//物品的体积
for(int i=1;i<=num;i++)
v[i] = sc.nextInt();
int[] dp = new int[vol+1];//记录可装入箱中的最大体积
for(int i=1;i<=num;i++){
//每个物品只能使用一次,故使用倒叙
for(int j=vol;j>=v[i];j--){
dp[j] = Math.max(dp[j],dp[j-v[i]]+v[i]);
}
}
System.out.println(vol-dp[vol]);
}
}

京公网安备 11010502036488号