百炼-2773-采药-C语言-01背包

博客探讨了经典的01背包问题的解决方案,通过动态规划方法优化空间复杂度,利用逆序递推减少不必要的计算,确保算法效率。
摘要由CSDN通过智能技术生成

典型而传统的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值