HDU2602 01背包(裸)模板题

#include

#include<conio.h>

#include<time.h>

#include

#include<stdio.h>

#include<string.h>

#include

#include

typedef long long ll;

typedef long l;

#define fo(i,begin,end) for(int i=begin;i<end;++i)

#define foo(i,begin,end) for(int i=begin;i>end;–i)

#define clr(a) memset(a,0,sizeof(a))

const int maxn = 1005;

using namespace std;

ll dp[ma 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 xn][maxn];

ll val[maxn],vol[maxn];

int main()

{

//freopen(“in.txt”, “r”, stdin);

ios::sync_with_stdio;

int t;

cin >> t;

while (t–)

{

clr(dp);

clr(val);

clr(vol);

int n, v;

cin >> n >> v;

fo(i, 1, n+1)

cin >> val[i];//价值

fo(i, 1, n+1)

cin >> vol[i];//体积

fo(i, 1, n+1)

{

fo(j, 0, v + 1)

{

if (j < vol[i])

dp[i][j] = dp[i - 1][j];

else

dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - vol[i]] + val[i]);

}

}

cout << dp[n][v]<<endl;

}

return 0;

}

滚动数组


//#define _CRT_SECURE_NO_WARNINGS//防止一些函数VS认定不安全而错误

#pragma warning(disable:4996)//屏蔽4996警告信息

#include

#include<conio.h>

#include<time.h>

#include

#include<stdio.h>

#include<string.h>

#include

#include

typedef long long ll;

typedef long l;

#define fo(i,begin,end) for(int i=begin;i<end;++i)

#define foo(i,begin,end) for(int i=begin;i>end;–i)

#define clr(a) memset(a,0,sizeof(a))

const int maxn = 1005;

using namespace std;

ll dp[maxn];//dp[i]表示i体积下能得到的最大值

ll val[maxn],vol[maxn];

int main()

{

//freopen(“in.txt”, “r”, stdin);

ios::sync_with_stdio;

int t;

cin >> t;

while (t–)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值