动态规划:01背包问题

import java.util.*;

public class Main {
    static int []dp;
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
       int n= sc.nextInt();//商品个数
       int V=sc.nextInt(); //背包容量
       int []w=new int[n]; //物品价值
       int []v=new int[n]; //物品体积
       dp=new int[V+1];
        for (int i = 0; i < n; i++) {
            v[i]=sc.nextInt();
            w[i]=sc.nextInt();
        }
        //先遍历物品后遍历背包,倒序遍历
        for (int i = 0; i <n; i++) {
            for (int j = V; j >=v[i] ; j--) {
                dp[j]=Math.max(dp[j],dp[j-v[i]]+w[i]);
            }
        }
        System.out.println(dp[V]);
    }
}
全部评论

相关推荐

02-23 09:11
已编辑
山东英才学院 Java
我是专升本三本学院的计科专业学生,现在面临毕业,感觉整个人都卡在了十字路口,想听听大家的建议。去年3月中开始学Java,看的是韩顺平的全套,当时觉得讲底层原理很扎实,现在回头看反而有点浪费时间,导致进度很慢。7、8月在家学JavaWeb也没学完,家里事情多,静不下心。9月开学后,专业课又多,没多少时间自学,也没敢怎么逃课。到11月,我实在顶不住了,决定放弃Java,开始海投任何岗位,就想毕业先有份工作。后来找了个少儿编程的工作,培训两天感觉完全不适合自己,主动离开了。之后在学校附近租了房,一度想备考一年研究生,就找了个菜鸟驿站兼职,每天4小时,特别累,时薪还低,干了20天就撑不住了。又想着高峰期跑外卖,分期买了黑骑士,考了D照,上牌还遇到一堆问题,压力巨大,还欠了4千块。跟家里坦白后,退了房(押金600、违约金300),2026年2月1号回了家。回家这二十多天,我又开始摇摆:学了点行测,放弃了;又捡回Java,顺便把毕设做了,毕设是纯JSP的JavaWeb项目,还好能搞定,差不多2月25号就能提前完成。我还报了3月22号的事业单位考试,基本等于裸考,心里其实有点逃避。现在摆在我面前的路好像就几条:1.&nbsp;继续肝Java到6月,把Spring、SpringMVC、SSM、SpringBoot学完,做个项目再去投Java开发岗;2.&nbsp;彻底放弃Java,用应届身份进传统制造业,先养活自己,无非累一点;3.&nbsp;硬着头皮去考事业单位,或者再回头准备考研,但我之前考研遇到困难就放弃过,自己都没信心。我自认为学习能力和毅力还行,但耐性不足,可能是中专时期没养成好的学习习惯。家里是农村的,收入不高,还有房贷要我爸一个人还,我也不想再给家里添负担了。想问问大家,像我这种情况,是应该咬咬牙再拼一把Java,还是先找个制造业的工作稳下来?或者有没有其他更现实的出路?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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