华为OD机试-云短信平台优惠活动-完全背包(JAVA 2024E卷)


java 复制代码
public class My {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int maxNum = Integer.parseInt(str);
        String line = sc.nextLine();
        String[] strings = line.split(" ");
        int n = strings.length;

        //要考虑到物品0的情况,物品0的重量和价值都是0
        int[] values = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            values[i] = Integer.parseInt(strings[i - 1]);
        }

        int[] wight = new int[n + 1];
        for (int i = 0; i < wight.length; i++) {
            wight[i] = i;
        }

        int[][] dp = new int[n + 1][maxNum + 1];
        for (int i = 1; i <= n; i++) {//物品数量
            for (int j = 1; j <= maxNum; j++) {//重量
                if (j < wight[i]) {//当前物品重量大于当前背包重量,不放入物品
                    dp[i][j] = dp[i - 1][j];
                }else {
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - wight[i]] + values[i]);
                }
            }
        }
        System.out.println(dp[n][maxNum]);

    }

}
相关推荐
蓝胖子不会敲代码28 分钟前
跟着AI学习C# Day27
开发语言·学习·c#
动能小子ohhh1 小时前
html实现登录与注册功能案例(不写死且只使用js)
开发语言·前端·javascript·python·html
Xiaouuuuua1 小时前
我开源了一套springboot3快速开发模板
java·开发语言·开源
三好码农2 小时前
深入Android 15 Zygote:从进程孵化器到系统基石
java·架构
穆易青2 小时前
2025.06.20【pacbio】|使用Snakemake构建可重复的PacBio全基因组甲基化分析流程
java·运维·服务器
李明一.2 小时前
Java 全栈开发学习:从后端基石到前端灵动的成长之路
java·前端·学习
@佳瑞2 小时前
吐槽之前后端合作开发
java
struggle20252 小时前
DeepForest开源程序是用于 Airborne RGB 机器学习的 Python 软件包
开发语言·python
杜大哥2 小时前
Python:.py文件如何变成双击可执行的windows程序?(版本1)
开发语言·windows·python