找啊找啊找GF(洛谷)

题目背景
“找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF,再见。” “诶,别再见啊…”

七夕…七夕…七夕这个日子,对于sqybi这种单身的菜鸟来说是多么的痛苦…

虽然他听着这首叫做 “找啊找啊找GF” 的歌,他还是很痛苦,为了避免这种痛苦,sqybi决定要给自己找点事情干.

他去找到了七夕模拟赛的负责人zmc MM,让她给自己一个出题的任务,经过几天的死缠烂打,zmc MM终于同意了.

但是,拿到这个任务的sqybi发现,原来出题比单身更让人感到无聊 -_-…

所以,他决定了,要在出题的同时去办另一件能够使自己不无聊的事情——给自己找GF.

sqybi现在看中了 n 个MM,我们不妨把她们编号 1 到 n,请MM吃饭是要花钱的,

  • 我们假设请 i 号MM吃饭要花 rmb[i] 块大洋,而希望骗MM当自己GF是要费人品的,

  • 我们假设请第 i 号MM吃饭试图让她当自己GF的行为(不妨称作泡该MM)要耗费 rp[i] 的人品.

  • 而对于每一个MM来说,sqybi都有一个对应的搞定她的时间,对于第 i 个MM来说叫做 time[i].

sqybi保证自己有足够的魅力用 time[i] 的时间搞定第 i 个MM,sqybi希望搞到尽量多的MM当自己的GF,这点是毋庸置疑的.

但他不希望为此花费太多的时间(毕竟七夕赛的题目还没出),所以他希望在保证搞到MM数量最多的情况下花费的总时间最少。

题目描述
sqybi现在有 m 块大洋,他也通过一段时间的努力攒到了 r 的人品 (这次为模拟赛出题也攒 rp 哦~~)。

他凭借这些大洋和人品可以泡到一些MM,他想知道,自己泡到最多的MM花费的最少时间是多少.

注意sqybi在一个时刻只能去泡一个MM,如果同时泡两个或以上的MM的话,她们会打起来的…

输入格式
输入的第一行是 n,表示sqybi看中的MM数量.
接下来有 n 行,依次表示编号为 1, 2, 3, …, n 的一个MM的信息,每行表示一个MM的信息,有三个整数: rmb, rp 和 time.
最后一行有两个整数,分别为 m 和 r。

输出格式
你只需要输出一行,其中有一个整数,表示sqybi在保证MM数量的情况下花费的最少总时间是多少。

输入数据
4
1 2 5
2 1 6
2 2 2
2 2 3
5 5

输出样例
13

数据范围
对于 20% 数据,1 ≤ n ≤10;
对于 100% 数据,1 ≤ rmb ≤ 100,1 ≤ rp ≤ 100,1 ≤ time ≤ 1000;
对于 100% 数据,1 ≤ m ≤ 100,1 ≤ r ≤ 100,1 ≤ n ≤ 100

说明/提示
sqybi说:如果题目里说的都是真的就好了…

sqybi还说,如果他没有能力泡到任何一个MM,那么他就不用消耗时间了,他要用这些时间出七夕比赛的题来攒rp…


题解
二维费用的01背包(空间优化):

#include <iostream>
using namespace std;

const int N = 110, M = 210;

int n, V1, V2;
int v1[N], v2[N], w[N], F[M][M], f[M][M];

int main()
{
    
    
	cin >> n;
	
	for (int i = 1; i <= n; i ++) cin >> v1[i] >> v2[i] >> w[i];
	
	cin >> V1 >> V2;
	
	for (int i = 1; i <= n; i ++)
		for (int j = V1; j >= v1[i]; j --)
			for (int k = V2; k >= v2[i]; k --)
				if(F[j][k] < F[j - v1[i]][k - v2[i]] + 1)						// 能找到更多的GF,就多花些时间 
				{
    
    
					F[j][k] = F[j - v1[i]][k - v2[i]] + 1;
					f[j][k] = f[j - v1[i]][k - v2[i]] + w[i];
				}
				else if(F[j][k] == F[j - v1[i]][k - v2[i]] + 1)					// 数量相同,就选花费时间较少的 
					f[j][k] = min(f[j][k], f[j - v1[i]][k - v2[i]] + w[i]);
				
	cout << f[V1][V2] << endl;
	return 0;			
}

ps:为什么不能对 f数组 进行初始化呢 ?

猜你喜欢

转载自blog.csdn.net/weixin_46239370/article/details/108974151
今日推荐