xynuoj 1423 贪婪戈尔曼(二维费用的背包问题)

原创 2018年04月17日 16:31:15

1423: 贪婪戈尔曼

时间限制: 1 Sec  内存限制: 128 MB
提交: 26  解决: 16
您该题的状态:已完成
[提交][状态][讨论版]

题目描述

从前有2只狗,大的叫大狗,小的叫小狗,它们2个合起来就是狗儿们,使用英语的人把它们写作Girlman,传来传去,到最后大家决定叫它们格尔曼。它们 的叫声很特别,但是它们十分吝啬它们的叫声,你为了听到它们的叫声,决定买狗饼干送给它们吃,不同种类的饼干能让它们叫的次数不一样,同一块饼干对于大小 格尔曼的效果也不一样。它们很贪婪,如果你只给其中一只格尔曼吃狗饼干或者给两只格尔曼吃的不一样,有一只就会不高兴,因此你买狗饼干的时候总要两块两块 地买,而且现在每类饼干也只有2块(想要多的也没得)。现在不是流行节约型社会吗?因此你也不能浪费,你要求的是在满足你要听格尔曼叫声次数要求的情况 (两只格尔曼实际叫的次数都不小于你的要求即可)下的最小花费是多少。

输入

   输入文件的第一行为3个整数n、s、b,分别表示狗饼干的类数、你想听到的小格尔曼的叫声次数和大格尔曼的叫声次数,接下来有n行,第i+1行有3个整数si、bi、ci,分别表示第i类狗饼干能让小格尔曼叫的次数、能让大格尔曼叫的次数和该类饼干的单价。

1<=n<=1000、1<=s,b<=50、0<=si ,bi ,ci <=2147483647。

输出

输出文件只有一个整数,为满足你的要求情况下的最小花费。

样例输入

5 5 10
1 2 5
2 4 10
3 7 8
1 11 36
6 0 18

样例输出

36
二维费用的背包问题—01背包,一类饼干最多买两块,但是一买必须买俩,所以是01背包,只不过以前的限制关系都是让在一个最大范围内(给出上限),这次却可以超过上限,只要费用小就可以,这里需要操作一下,超过上线的都让其等于上限,选最小费用的。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int si[1005];
int bi[1005];
int c[1005];
long long dp[55][55];
int main()
{
	int n,s,b;
	memset(dp,127,sizeof(dp)); 
	scanf("%d%d%d",&n,&s,&b);
	for(int i=1;i<=n;i++)
		scanf("%d%d%d",&si[i],&bi[i],&c[i]);
	dp[0][0]=0;
	for(int i=1;i<=n;i++)
		for(int j=s;j>=0;j--)//注意底线是>=0 
			for(int k=b;k>=0;k--)
			{//题目中可以超过s,b,这里超过的也当s,b,只选代价小的 
				int x=min(s,j+si[i]);
				int y=min(b,k+bi[i]);
				if(dp[x][y]>dp[j][k]+c[i])
				dp[x][y]=dp[j][k]+c[i]; 
			}
	printf("%lld\n",dp[s][b]*2);//一次买俩,费用*2 
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BBHHTT/article/details/79976677

贪婪戈尔曼

题目描述从前有2只狗,大的叫大狗,小的叫小狗,它们2个合起来就是狗儿们,使用英语的人把它们写作Girlman,传来传去,到最后大家决定叫它们格尔曼。它们 的叫声很特别,但是它们十分吝啬它们的叫声,你为...
  • doublekillyeye
  • doublekillyeye
  • 2018-04-09 21:21:18
  • 14

动态规划:HDU2159-FATE(二维费用的背包问题)

FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • yopilipala
  • yopilipala
  • 2017-07-09 20:35:24
  • 887

动态规划-整数划分

1.基础dp 整数划分:1.1基础题目1:输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。思路:...
  • qq_36914923
  • qq_36914923
  • 2018-04-16 19:18:57
  • 9

杭电2159-二维费用的背包问题

#include #include #include using namespace std; int n,m,k,s; int v[110],w[110]; int dp[110][110];...
  • dtwd886
  • dtwd886
  • 2016-05-04 21:31:11
  • 282

HDU-2159 FATE(二维费用背包问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 题目: FATE Time Limit: 2000/1000 MS (Java/Others...
  • qq_33171970
  • qq_33171970
  • 2016-01-26 17:17:46
  • 620

动态规划:二维费用的背包问题

Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。...
  • weixin_38293125
  • weixin_38293125
  • 2017-10-21 19:38:43
  • 69

二维费用的背包问题

题:二维费用的背包问题是指对于每件物品,具有两种不同的费用,选择这件物品必须同时付出这两种代价,对于每种代价都有一个可付出的最大值(背包容量),求选择物品可以得到最大的价值。设第i件物品所需的两种代价...
  • power721
  • power721
  • 2009-08-30 21:50:00
  • 2800

vijos1334 NASA的食物计划(二维费用的背包问题)

背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安 全技术问题一直大伤脑筋,因此在各方压力下终止了航天 飞机的历史,但是此类事情会不会在以后发生,谁也无法 保证,在遇到这类航天问...
  • keshuqi
  • keshuqi
  • 2016-08-16 17:28:21
  • 606

潜水员(二维费用的背包问题)

Description 潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体...
  • SSLGZ_yyc
  • SSLGZ_yyc
  • 2017-04-21 19:27:02
  • 507

背包问题详解(01背包,完全背包,多重背包,混合背包,二维费用背包……)

  • 2010年10月16日 22:21
  • 124KB
  • 下载
收藏助手
不良信息举报
您举报文章:xynuoj 1423 贪婪戈尔曼(二维费用的背包问题)
举报原因:
原因补充:

(最多只允许输入30个字)