当前位置: 首页 > news >正文

每日OJ题_牛客_[NOIP2001]装箱问题_01背包_C++_Java

目录

牛客_[NOIP2001]装箱问题_01背包

题目解析

C++代码

Java代码


牛客_[NOIP2001]装箱问题_01背包

[NOIP2001]装箱问题 (nowcoder.com)

描述:
        有一个箱子容量为V(正整数,0 ≤ V ≤ 20000),同时有n个物品(0<n ≤ 30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。


题目解析

01 背包简单应用。01背包类型题解:Offer必备算法25_01背包_四道力扣题详解(由易到难)_力扣 01背包-CSDN博客

C++代码

#include <iostream>
#include <vector>
#include <climits>
using namespace std;int main()
{int V = 0, n = 0;cin >> V >> n;vector<int> arr(n);    // 下面找原数组不-1的话就多开一个位置占位,输入[1,n]for(int i = 0; i < n; ++i){cin >> arr[i];}vector<vector<int>> dp(n + 1, vector<int>(V + 1));for(int i = 1; i <= n; ++i){for(int j = 0; j <= V; ++j){dp[i][j] = dp[i - 1][j];if(j >= arr[i - 1])dp[i][j] = max(dp[i][j], dp[i - 1][j - arr[i - 1]] + arr[i - 1]);}}cout << V - dp[n][V] << endl;return 0;
}

Java代码

import java.util.*;
public class Main
{public static void main(String[] args){Scanner in = new Scanner(System.in);int v = in.nextInt();int n = in.nextInt();int[] arr = new int[n + 1];for(int i = 1; i <= n; i++){arr[i] = in.nextInt();}int[][] dp = new int[n + 1][v + 1];for(int i = 1; i <= n; i++){for(int j = 0; j <= v; j++){dp[i][j] = dp[i - 1][j];if(j >= arr[i]){dp[i][j] = Math.max(dp[i][j], dp[i - 1][j - arr[i]] + arr[i]);}}}System.out.println(v - dp[n][v]);}
}

http://www.mrgr.cn/news/55692.html

相关文章:

  • C#中Task.ContinueWith如何使用
  • 价值投资(Value Investing)
  • SaaS架构:中央库存系统架构设计
  • 排序02 Multi-gate Mixture-of-Experts (MMoE)
  • 深度学习 简易环境安装(不含Anaconda)
  • Qt中使用线程之QThread
  • 面试总结(持续更新~)
  • 100多种【基于YOLOv8/v10/v11的目标检测系统】目录(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)
  • pychar社区版下载
  • Leetcode|24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
  • 01 一篇读懂25机械考研复试超全流程讲解|考研面试经验和面试真题快来背诵!
  • 内网穿透frp部署
  • Spring Boot慢启动?一文带你轻松优化!
  • 【Linux】线程基本概念,线程控制
  • 深度学习--CNN实现猫狗识别二分类(附带下载链接, 长期有效)
  • [while循环]k的幂
  • js实现两个变量交换
  • 座舱软件开发“道与术”
  • 04,perl
  • navigate连接opengauss
  • Linux系统:tac命令
  • 速盾:免费cdn加速节点是什么?
  • 【数学二】多元函数微积分学-多元函数的微分
  • 算法01----移动零(C++)
  • 股票最大利润2
  • Linux文件你不知道的那些事,搞清楚磁盘空间占用的问题