当前位置: 首页 > 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

相关文章:

  • Android 使用Charles抓包显示Unknown
  • 数据绑定与状态管理
  • Flink Sink的使用
  • [UUCTF 2022 新生赛]ez_rce
  • 自然语言处理基础之文本预处理
  • Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)
  • 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程序设计》上机实验报告(八)之结构体和共用体