• 算法训练 装箱问题


      算法训练 装箱问题  
    时间限制:1.0s   内存限制:256.0MB
          
    问题描述
      有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
      要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
    输入格式
      第一行为一个整数,表示箱子容量;
      第二行为一个整数,表示有n个物品;
      接下来n行,每行一个整数表示这n个物品的各自体积。
    输出格式
      一个整数,表示箱子剩余空间。
      样例输入
      24
      6
      8
      3
      12
      7
      9
      7
    样例输出
    0
    import java.util.Scanner;
    public class Main {
        static int v;
        static int n;
        static int va[];
        static int dp[][];
        static void solve(){
            for(int i=0;i<n;i++){
                for(int j=0;j<=v;j++){
                    if(va[i]>j) dp[i+1][j]=dp[i][j];
                    else
                    dp[i+1][j]=Math.max(dp[i][j],dp[i][j-va[i]]+va[i] );
                }
            }
            
            System.out.println(v-dp[n][v]);
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc=new Scanner(System.in);
             v=sc.nextInt();
             n=sc.nextInt();
             va=new int[n];
             dp=new int[n+1][v+1];
            for(int i=0;i<n;i++){
                va[i]=sc.nextInt();
            }
            solve();
    
        }
    
    }
  • 相关阅读:
    Mutex和Lock
    Thread和Promise以及packaged_task
    async和Future
    《并行程序设计导论》——读书笔记汇总
    UnrealEngine4蓝图可视化编程 完整例子 勘误
    BOOST下载
    sql 解析xml
    AutoResetEvent 笔记2
    ssh免密登录设置 (普通用户和root用户)
    npm设置淘宝镜像
  • 原文地址:https://www.cnblogs.com/watchfree/p/5769654.html
Copyright © 2020-2023  润新知