AC_8. 二维费用的背包问题

代码:

/*
二维费用背包问题
*/
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

const int N = 110;

int n, v, m;
int dp[N][N];

int main()
{
    cin >> n >> v >> m;
    for (int i = 0; i < n; i++)
    {
        int a, b, c;
        cin >> a >> b >> c;
        for (int j = v; j >= a; j--)
        {
            for (int k = m; k >= b; k--)
            {
                dp[j][k] = max(dp[j][k], dp[j - a][k - b] + c);
            }
        }
    }

    cout << dp[v][m] << endl;
    return 0;
}

原文地址:https://www.cnblogs.com/gcter/p/11344932.html

时间: 2024-10-06 11:01:03

AC_8. 二维费用的背包问题的相关文章

二维费用的背包问题

问题 二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量). 问怎样选择物品可以得到最大的价值. 设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i].两种代价可付出的最大值(两种背包容量)分别为V和U.物品的价值为c[i]. 算法 费用加了一维,只需状态也加一维即可. 设f[i][v][u]表示前i件物品付出两种代价分别为v和u时可获得的最大价值. 状态转移方程就是:f [i]

背包九讲之五(二维费用的背包问题)

http://acm.fafu.edu.cn/problem.php?id=1499 1 /* 2 二维费用的背包问题是指:对于每件物品,具有两种不同的费用, 3 选择这件物品就必须付出这两种代价,每种代价都有可付出的最大值(背包容量) 4 问怎么选择物品才能得到最大价值.费用增加了一维,那么只需要状态增加一维就可以了. 5 dp[i][j][k] 前i件物品付出两种代价为j和k的最大价值 6 dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-a[i]][k-b

第五讲 二维费用的背包问题(粗糙,勿点)

对背包九讲的学习:网址 题目: 二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量).问怎样选择物品可以得到最大的价值.设这两种代价分别为代价1和代价2,第i件物品所需的两种代价分别为a[i]和b[i].两种代价可付出的最大值(两种背包容量)分别为V和U.物品的价值为w[i]. 状态转移方程: f[i][v][u]=max{f[i-1][v][u],f[i-1][v-a[i]][u-b[i]]+w[i]} 加

hdu - 2660 Accepted Necklace (二维费用的背包问题)

http://acm.hdu.edu.cn/showproblem.php?pid=2660 f[v][u]=max(f[v][u],f[v-1][u-w[i]]+v[i]; 注意中间一层必须逆序循环. 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 int dp[21][1001]; 6 int v[1001],w[1001]; 7 int

二维费用背包问题(背包九讲)

------------------------------------------ 前言: 对于一些背包问题,重点还是在于如何找出"背包容量"和"各种代价",以及价值,如此问题便迎刃而解了.下午 打篮球居然下冰雹了,悲催了.... ------------------------------------------ 问题: 二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有 一个可付出的最大值(背包容量)

HDU 3496 (二维费用的01背包) Watch The Movie

多多想看N个动画片,她对这些动画片有不同喜欢程度,而且播放时长也不同 她的舅舅只能给她买其中M个(不多不少恰好M个),问在限定时间内观看动画片,她能得到的最大价值是多少 如果她不能在限定时间内看完买回来的动画片,则输出0 这里借用大牛的背包九讲的讲义,讲的很清楚 问题 二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量).问怎样选择物品可以得到最大的价值.设这两种代价分别为代价1和代价2,第i件物品所需的两种

POJ2184Cow Exhibition(二维费用背包)

Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9067   Accepted: 3441 Description "Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - Cows with Guns by Dana Lyons The cows want to prove to t

[二维费用背包DP]找啊找啊找GF

题目链接 思考 首先题目一定是背包DP(多读数据范围和题意) 其次一定是 二维费用的背包问题 (人品和金钱) 最后题目要求的是 在泡尽量多的妹子的情况下,花费最少的时间. DP转移方程一定是二维的没错,但是要满足花费最少妹子最多的这个要求就比较难以解决了.不过也不要想这么多,先看看我的分析. 假设在求解过程中如果花X元RMP,Y单位RP可以到Z个MM,那么在泡第i个MM时,发现可以用X-rmb[i]元,Y-rp[i]单位RP泡到的MM数加上这个MM(也就是+1)比原来Z多,就替换它(因为你的原则

基础DP中的二维费用的背包

二维费用的背包问题: 指对于每件物品,具有2种不用的费用,选择这件物品需要同时付出2种代价 对于每一种代价都有一个可付出的最大值(背包容量) 问怎么样选择物品可以得到最大的价值 设这2种代价分别为1,2 第i件物品所需的2种代价为a[i] , b[i] 2种代价可付出的最大值为U,V 物品价值为w[i] 费用增加了一维,则状态也增加一维 设f[u][v]表示前i件物品付出代价为u,v时的最大价值 则f[u][v]=max(f[u][v],f[u-a[i]][v-b[i]]+w[i]) 1.物品只