• P1757 通天之分组背包(分组背包)


    题目背景

    直达通天路·小 A 历险记第二篇

    题目描述

    自 0101 背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 0101 背包,他的物品大致可分为 kk 组,每组中的物品相互冲突,现在,他想知道最大的利用价值是多少。

    输入格式

    两个数 m,nm,n,表示一共有 nn 件物品,总重量为 mm。

    接下来 nn 行,每行 33 个数 a_i,b_i,c_iai,bi,ci,表示物品的重量,利用价值,所属组数。

    输出格式

    一个数,最大的利用价值。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    int n,m;
    int dp[maxn][maxn];
    int c[maxn];
    int w[maxn];
    int b[maxn];
    vector<pair<int,int>> g[maxn];
    int main () {
        scanf("%d%d",&m,&n);
        for (int i=1;i<=n;i++) {
            scanf("%d%d%d",c+i,w+i,b+i);
            g[b[i]].push_back(make_pair(c[i],w[i])); 
        }
        for (int i=1;i<=1000;i++) {
            for (int j=0;j<g[i].size();j++) {
                for (int k=m;k>=g[i][j].first;k--)
                    dp[i][k]=max(dp[i][k],dp[i-1][k-g[i][j].first]+g[i][j].second);
            }
        }
        int ans=0;
        for (int i=1;i<=1000;i++)
            for (int j=0;j<=m;j++) ans=max(ans,dp[i][j]);
        printf("%d
    ",ans);
    }
  • 相关阅读:
    spark的环境安装
    (7)zabbix资产清单inventory管理
    (6)zabbix主机与组配置
    (5)zabbix配置详解
    (4)zabbix监控第一台服务器
    (3)zabbix用户管理
    (2)zabbix硬件需求
    (1) zabbix进程构成
    centos7系统root无法通过su切换到某个普通用户
    01基础复习
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/13453662.html
Copyright © 2020-2023  润新知