当前位置: 首页 > article >正文

动态规划C语言

#include <stdio.h>
#include <stdlib.h>

#define max(a, b) ((a) > (b) ? (a) : (b))

int knapsack(int W, int wt[], int val[], int n) {
    int i, w;
    int K[n+1][W+1];  // 填充 K()() 数组

    // 遍历每一个物品和背包容量
    for (i = 0; i <= n; i++) {
        for (w = 0; w <= W; w++) {
            if (i == 0 || w == 0) {
                K[i][w] = 0;
            } else if (wt[i-1] <= w) {
                K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w]);
            } else {
                K[i][w] = K[i-1][w];
            }
        }
    }
    return K[n][W];
}

int main() {
    int val[] = {60, 100, 120};
    int wt[] = {10, 20, 30};
    int W = 50;
    int n = sizeof(val) / sizeof(val[0]);

    printf("背包中能装的最大价值为:%d\n", knapsack(W, wt, val, n));

    return 0;
}


http://www.kler.cn/a/229956.html

相关文章:

  • docker-compose安装canal并利用rabbitmq同步多个mysql数据
  • vue 导出excel接口请求和axios返回值blob类型处理
  • 计算机网络之---数据链路层的功能与作用
  • Linux 下信号的保存和处理
  • Windows 安装 Docker 和 Docker Compose
  • 2025年XR行业展望:超越虚拟,融合现实
  • SpringBoot 事务管理Transactional 数据回滚 数据一致性
  • 工业笔记本丨行业三防笔记本丨亿道加固笔记本定制丨极端温度优势
  • containerd中文翻译系列(五)客户端选项
  • 10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率
  • 符号绑定和函数绑定
  • 详解WebRTC rtc::Thread实现
  • 全新 鸿蒙系统
  • Leetcode—33. 搜索旋转排序数组【中等】
  • Spring设计模式之单例模式
  • 计算huggingface模型占用硬盘空间的实战代码
  • 电机粘性阻尼系数D
  • 分享springboot框架的一个开源的本地开发部署教程(若依开源项目开发部署过程分享持续更新二开宝藏项目MySQL数据库版)
  • opensuse安装百度Linux输入法
  • 2024.02.05
  • 假期2.5
  • 六轴机器人奇异点
  • C++——stack与queue与容器适配器
  • 基于Vue2用keydown、keyup事件实现长按键盘任意键(或组合键)3秒触发自定义事件(以F1键为例)
  • 小学教师职称等级顺序 申请条件有哪些要求
  • 《C程序设计》上机实验报告(八)之结构体和共用体