典型而传统的01背包解决办法,没有做任何的优化。
/************************************************
**文件名:百炼-2773
**Copyright (c) 2010-2020 OrdinaryCrazy
**创建人:OrdinaryCrazy
**日期:20170805
**描述:百炼-2773参考答案
**版本:3.0
*************************************************/
#include <stdio.h>
#include <stdlib.h>
struct drug
{
int time,cost;
};
int max(int a,int b)
{
return a > b ? a : b;
}
/*************************************************
这个问题的意思是,希望我们找到这样一个药品组合
1,不能超过指定用时
2,采得药物总价值最高
这是一个典型的01背包问题
状态:药品使用情况,背包剩余容量
值:药品总价值
状态转移方程:f[i][v]=max(f[i-1][v],f[i-1][v-c[i]]+w[i])
f[i][v]表示将前i种草药在时间v允许的情况下采集可获得的最大总价值
**************************************************/
typedef struct drug drug;
dru