动态规划之背包问题
发布日期:2021-05-07 09:28:37 浏览次数:18 分类:精选文章

本文共 554 字,大约阅读时间需要 1 分钟。

文章目录

01背包问题详细图解

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

c语言完整代码

#include 
int max(int a,int b){ if(a>b) return a; else return b;}int main(){ int n,m; int i,j,k; int a[10],b[10]; int f[10][100]; while(scanf("%d%d",&n,&m)&&n!=0&&m!=0) { for(i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) for(int j=m;j>0;j--){ if(a[i]<=j) f[i][j]=max(f[i-1][j],f[i-1][j-a[i]]+b[i]); else f[i][j]=f[i-1][j]; } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { printf("%d ",f[i][j]); } }}}
上一篇:回溯和分支限界详解和实例(八皇后问题,哈密顿回路解析和代码)
下一篇:两点之间最短路径的计算-floyd算法详

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年03月22日 10时01分55秒