背包问题
来源:互联网 发布:网络延迟怎么解决 编辑:程序博客网 时间:2024/06/08 08:18
第一次写博,记录学习过程。
01背包
主要: a[i][j] = max(a[i-1][j-wi[i]]+va[i], a[i-1][j]);
前提条件为物品质量大于背包质量。放上一件物品(a[i-1][j])的时候,背包的质量与 添加当前物品(a[i-1][j-wi[i]]+va[i]),“a[i-1][j-wi[i]]”为放当前物品之前的背包状态,“va[i]”为当前物品的价值。
#include<stdio.h>#include<string.h>int max(int x,int y){ if(y>x) return y; return x;}int main(){ int n,m,a[100][100]; while(scanf("%d %d",&n,&m)!=EOF){ memset(a,0,sizeof(a)); int wi[n+5],va[n+5]; for(int i = 1; i <= n; i++){ scanf("%d %d", &wi[i], &va[i]); } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(wi[i]<=j){ a[i][j] = max(a[i-1][j-wi[i]]+va[i], a[i-1][j]);//第一次出错(a[i][j-wi[i]]+va[i]应该改为“a[i-1][j-wi[i]]+va[i]”) }else{ a[i][j] = a[i-1][j]; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ printf("%d ",a[i][j]); } printf("\n"); } } return 0;}
0 0
- 【无限背包】背包问题
- 背包问题---01背包
- 背包问题--部分背包
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 一、冒泡排序演进
- 2017网易实习生招聘编程题之魔力手环(矩阵幂)
- 解析僵尸进程和孤儿进程
- Spring + ActiveMQ 整合
- 数组3:调整数组顺序使奇数位于偶数前面
- 背包问题
- ExecutorService深入理解
- Codeforces 803 B. Distances to Zero (模拟
- Java 8时间
- javaweb基础----struts驱动模型
- Mac下使用Spark-shell实现WorldCount
- JS(JQ)实现带动画的回到顶部效果
- 写给养花小白的水培小教程
- java mina的使用