华为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]);

    }

}
相关推荐
Flittly10 分钟前
【雕虫大技】Agent 动态 Skill 供应链安全加固(三):输出校验与治理闭环实战
java·spring boot·spring
Poo_Chai10 分钟前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
瑞码空间17 分钟前
Java 图形界面(GUI)完整知识点手册
java·开发语言·图形界面·swing
茶本无香1 小时前
Java调用Shell脚本执行SQL数据库操作:从入门到实战
java·sql·shell
小努蛋1 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty
风流 少年1 小时前
Spring AI 2.0:MCP
java·后端·spring
qz_Serene1 小时前
C++:类和对象(上)
开发语言·c++
天疆说1 小时前
01 硬件选型与 llama.cpp 部署:4× RTX 5880 Ada 跑 DeepSeek-V4-Flash
java·redis·llama
西安景驰电子2 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php