• 背包类问题解答——poj3624分析


    习题网址:http://poj.org/problem?id=3624

    试题分析:该类题通过限定物品总数量、总质量;并且初始化每个物品的起始质量和一个量化的性质。最后求解最值的量化性质的值是多少的问题。

    该类问题主要是可以通过:父问题的最优解依赖于一些子问题的 最优解 这就是所谓的最优子结构

    核心思想:dp(i,j) = max{dp(i-1,j),dp(i-1,j-Ci)+Wi}

    AC代码分析:

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    #include <string.h>
    using namespace std;
    int bag[12900]; //背包
    int w[3410],v[3410]; //输入的两个属性
    int main()
    {
    int n,m;
    cin >> n >> m;     //最开始的数量和规定的质量
    for(int i=1; i<=n; i++) //这也正是两个数组
    cin >> w[i] >> v[i];    //完成了所有的输入
    // memset(bag,0,sizeof(bag));这句话主要是用来清理的功能数目小的时候可以不使用
    for(int i=1; i<=n; i++)
    for(int k=m; k>=w[i]; k--)
    if( bag[k-w[i]]+ v[i] > bag[k] )//求两个最大值的过程
    bag[k] = bag[k-w[i]]+ v[i];
    cout << bag[m] << endl;
    return 0;
    }

    我要坚持一年,一年后的成功才是我想要的。
  • 相关阅读:
    IntelliJ IDEA基本设置
    git安装
    Git的作用与安装
    git是什么
    SpringMVC控制器类方法的返回值
    SpringMVC中Model机制
    什么是Nosql
    如何使用Jedis操作redis
    redis中数据类型操作命令
    redis的全局命令
  • 原文地址:https://www.cnblogs.com/tianxia2s/p/3848829.html
Copyright © 2020-2023  润新知