zoukankan      html  css  js  c++  java
  • 算法训练 装箱问题

      算法训练 装箱问题  
    时间限制: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();
    
        }
    
    }
  • 相关阅读:
    201521123065《java程序设计》第14周学习总结
    201521123065《java程序设计》第13周学习总结
    201521123065《java程序设计》第12周学习总结
    选择器
    浮动布局
    定位布局—position
    软工个人总结
    个人作业4——alpha阶段个人小结
    软件工程个人作业3
    结队编程
  • 原文地址:https://www.cnblogs.com/watchfree/p/5769654.html
Copyright © 2011-2022 走看看