zoukankan      html  css  js  c++  java
  • TYVJ P1016 装箱问题 Label:01背包 DP

    做题记录:2016-08-15 23:07:04

    背景

    太原成成中学第2次模拟赛 第三道

    描述

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

    输入格式

    第一行,一个整数,表示箱子容量; 
    第二行,一个整数,表示有n个物品; 
    接下来n行,分别表示这n个物品的各自体积。 

    输出格式

    一个整数,表示箱子剩余空间。

    测试样例1

    输入

    24 



    12 


    输出

    0

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int f[20010],v[35],N,M,ans;
    int main(){
    //    freopen("01.txt","r",stdin);
        scanf("%d%d",&M,&N);
        for(int i=1;i<=N;i++){
            scanf("%d",&v[i]);
        }
        for(int i=1;i<=N;i++){
            for(int j=M;j>=v[i];j--){
                f[j]=max(f[j],f[j-v[i]]+v[i]);
                ans=max(ans,f[j]);
            }
        }
        printf("%d
    ",M-ans);
        return 0;
    }

    大概没什么可以解释了的吧

    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    cron表达式详解
    C# Quartz 调度任务辅助类
    SQLserver查询用逗号隔开的字段中是否包含另一个字段的值
    c# 将字符串转换为逻辑表达式(字符串转换布尔)
    铺砖块
    字符串涂漆
    快餐店
    乘号加号
    传纸条(lgP1006)
    小明的喷漆计划
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/5774718.html
Copyright © 2011-2022 走看看