题目要求:
采每一株药都需要一些时间,每一株也有它自身的价值。一段时间内,可以采到一些草药。在规定时间内让采到的草药的总价值最大。
题目思路:
此题为01背包问题,令b[i][t]表示前i株药材恰在T时间内采完获得醉的价值,状态转移方程:b[i][t]=max{b[i-1][t],b[i-1][t-c[i]]+a[i]};
细节处理:
进行空间优化:b[t]=max{b[t],b[T-c[i]]+a[i]};初始化时除了b[0]至b[T]均设为0。
#include<bits/stdc++.h>
using namespace std;
struct