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

    问题描述
      有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
      要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
    输入格式
      第一行为一个整数,表示箱子容量;
      第二行为一个整数,表示有n个物品;
      接下来n行,每行一个整数表示这n个物品的各自体积。
    输出格式
      一个整数,表示箱子剩余空间。
      样例输入
      24
      6
      8
      3
      12
      7
      9
      7
    样例输出
    0
     1 import java.math.BigInteger;
     2 import java.util.Arrays;
     3 import java.util.Scanner;
     4 
     5 
     6 public class Main {
     7     static int n;
     8     static int[] a;
     9     static int mix = 200000;
    10     public static void main(String[] args) {
    11         Scanner input = new Scanner(System.in);
    12         int sum = input.nextInt();
    13         n = input.nextInt();
    14         a = new int[n];
    15         for(int i=0;i<n;i++){
    16             a[i] = input.nextInt();
    17         }
    18         f(sum,0);
    19         System.out.println(mix);
    20                 
    21     }
    22     public static int f(int sum,int i){
    23         if(sum<0) return -1;
    24         if(i==n) {if(mix>sum)    mix = sum;}
    25             for(int j=i;j<n;j++){
    26                 if(f(sum-a[j],j+1)==-1){
    27                     if(mix>sum)    mix = sum;
    28                 }
    29             }
    30             return sum;
    31         
    32         
    33         
    34 
    35     }
    36 }
  • 相关阅读:
    二叉排序树和平衡二叉树
    博客首页特效整理2
    博客首页特效整理
    19-20下学期思维导图
    19-20下学期第一次作业问卷调查回答
    c++实现五子棋游戏
    c++实现扫雷游戏
    c++实现2048游戏
    c++实现推箱子游戏
    C++实现贪吃蛇小游戏
  • 原文地址:https://www.cnblogs.com/lolybj/p/6623516.html
Copyright © 2011-2022 走看看