题解 | #[NOIP2001]装箱问题#

[NOIP2001]装箱问题

https://www.nowcoder.com/practice/55100a6608ad4656849dbd1f16d044cb

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //动态规划问题
	    //总共的容量
        int total=in.nextInt();
        //物体放入的数量
        int n=in.nextInt();
        //将物体质量放入集合中方便遍历
        int arr[]=new int[n];
        for(int i=0;i<n;i++){
            arr[i]=in.nextInt();
        }
        //定义一个比盒子大的数组,用来保持每次循环后最大的值,+1是为了方便取到最后的值
        int[] dp=new int[total+1];
        //对集合进行遍历,每次都可以拿到一个物品放入后的最大值
        for(int i=0;i<n;i++){
            for(int j=total;j>=arr[i];j--){
                dp[j]=Math.max(dp[j],dp[j-arr[i]]+arr[i]);
            }
        } 
        //求剩余,就用总共的数量去减去最大的数量
        System.out.print(total-dp[total]);
    }
}

全部评论

相关推荐

10-22 15:25
门头沟学院 C++
种花网友小松:求求你别发了,我几乎都快嫉妒得疯了,倒在床上蒙住被子就开始抱着枕头尖叫流泪,嘴里一边喊着卧槽卧槽,一边又忍着,我边发边哭,打字的手都是抖的,后来我的手抖得越来越厉害,从心头涌起的思想、情怀和梦想,这份歆羡和悔恨交织在一起,我的笑还挂在脸上,可是眼泪一下子就掉下来了。求你了别发了,我生活再难再穷我都不会觉得难过,只有你们发这种东西的时候,我的心里像被刀割一样的痛,打着字泪水就忍不住的往下流。
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务