zoukankan      html  css  js  c++  java
  • 九度 1494:Dota(完全背包)

    题目描述:

    大家都知道在dota游戏中,装备是对于英雄来说十分重要的要素。
    英雄们不仅可以购买单个的装备,甚至某些特定的装备组合能够合成更强的装备。
    为了简化问题,我们将每个装备对于英雄的功能抽象为一个整数:价值。同时,如上所说,一些特定的装备可以用来合成更强的装备,玩家会因此获得除原装备价值外额外的价值。
    给定玩家现有的金钱数,每个装备的价格和其对应的价值,以及装备合成的信息。输出,其能获得的最大价值数。
    注意:每件装备只能参与合成一件合成装备(即原装备参与合成后得到合成后的新装备,原装备消失),除非一次购买多个该种装备。

    思路

    1. 刚开始没看懂题目, 还以为是有依赖的背包问题, 后来看了解题报告才明白过来: 装备是没有购买上限的, 这就简单多了

    2. 假如给定的装备只能取一件, 装备之间又能合成新装备, 那么这道题就难了

    代码

    #include <iostream>
    #include <stdio.h>
    #include <memory.h>
    using namespace std;
    
    int weight[200];
    int value[200];
    
    int dp[1200];
    int n, m, g;
    
    int main() {
    
        while(scanf("%d%d%d", &n, &m, &g) != EOF) {
            memset(weight, 0, sizeof(weight));
            memset(value, 0, sizeof(value));
            memset(dp, 0, sizeof(dp));
    
            for(int i = 0; i < n; i ++) {
                scanf("%d%d", weight+i, value+i);
            }
    
            for(int i = 0; i < m; i ++) {
                int q;
                scanf("%d", &q);
                for(int k = 0; k < q; k ++) {
                    int party;
                    scanf("%d", &party);
                    weight[n] += weight[party-1];
                    value[n] += value[party-1];
                }
    
                int extraValue;
                scanf("%d", &extraValue);
                value[n] += extraValue;
                n++;
            }
    
            for(int i = 0; i < n; i ++) {
                for(int v = weight[i]; v <= g; v ++) {
                    dp[v] = max(dp[v], dp[v-weight[i]]+value[i]);
                }
            }
    
            printf("%d
    ", dp[g]);
    
        }
        return 0;
    }
  • 相关阅读:
    IIS和tomcat共用80端口
    CYQ.Data V5 从入门到放弃ORM系列:教程
    C#中==与Equals方法的区别
    一个简单得不能再简单的“ORM”了
    msbuild ConfuserEx.Build 加密
    C#生成注册码
    从多个XML文档中读取数据用于显示webapi帮助文档
    ASP.NET MVC SSO 单点登录设计与实现
    ASP.NET MVC Bootstrap极速开发框架
    Nodejs初阶之express
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3593871.html
Copyright © 2011-2022 走看看