#90-【填满型背包dp】奖品

Description

托塔李天王的三太子那吒,本领高强,他要赶在奥林匹克运动会之际,开一个头脑奥林匹克比赛,获胜者的奖品就是经过提练后的"氦-3"晶结体;该物质在月球上大量存在,是一种无色、无味的氦气同位素,它在核聚变研究中有重要作用。氦-3还是一种绝对清洁的能源,因为它本身不带放射性,因此不会产生任何放射性废料。可是如何从月球上将该晶体运回地球呢?那吒说:用我的肚兜吧!当然他的肚兜易受太阳风等因素的影响,载重量不能超过K(1≤n≤100000),超过这个值,肚兜就不会飞了;这个K值那吒会告诉你的,同时还会告诉你每一个晶体的重量。
你的任务是使这个肚兜一次能运回更多的晶体。

 

Input

输入文件jiangpin.in有两行:
第一行有两个正整数n和k,用一个空格隔开。表示有n个晶体,肚兜最大载重量为k。
第二行有n个不超过10000的正整数,分别表示n个晶体的重量,数与数之间用一个空格隔开。

 

Output

输出文件jiangpin.out只有一行,该行只有一个正整数,表示那吒的肚兜一次能运回的晶体重量的最大值。

Sample Input

5 15
2 4 4 8 10

Sample Output

14

HINT

 

【数据限制】

40%的数据: 1≤n≤20。

100%的数据:1≤n≤100。

好水啊......

#include <iostream>

#define SIZE 100001

using namespace std;

int dp[SIZE];

int main(int argc, char** argv)
{
	int t, n, c, i;
	
	scanf("%d%d", &n, &t);
	while (n--)
	{
		scanf("%d", &c);
		for (i = t; i >= c; --i) // 填满型背包
		{
			dp[i] = max(dp[i], c + dp[i-c]);
		}
	}
	
	printf("%d", dp[t]);
	
	return 0;
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值