百度面试题 0-1背包问题-动态规划法
来源:互联网 发布:网络共享文件夹打不开 编辑:程序博客网 时间:2024/05/17 22:11
#include<stdio.h>
#include<string.h>
int main()
{
int N = 3;
int V = 5;
int C[4] = {0,1,2,3};
int W[4] = {0,60,100,120};
int f[N][V];
//memset(f,0,sizeof(int)*N*V);
for(int i=0;i<=V;i++)
f[0][i] = 0;
for(int i=1;i<=N;i++)
{
f[i][0] = 0;
for(int j = 1;j<=V;j++)
{
if(j<C[i])
f[i][j] = f[i-1][j];
else
f[i][j] = (f[i-1][j] > (f[i-1][j-C[i]]+W[i])? f[i-1][j]:(f[i-1][j-C[i]]+W[i]));
}
}
printf("value:weight: ");
for(int i=1;i<4;i++)
{
printf("%d:%d ",C[i],W[i]);
}
printf("\nThe final value is %d\n",f[N][V]);
return 0;
#include<string.h>
int main()
{
int N = 3;
int V = 5;
int C[4] = {0,1,2,3};
int W[4] = {0,60,100,120};
int f[N][V];
//memset(f,0,sizeof(int)*N*V);
for(int i=0;i<=V;i++)
f[0][i] = 0;
for(int i=1;i<=N;i++)
{
f[i][0] = 0;
for(int j = 1;j<=V;j++)
{
if(j<C[i])
f[i][j] = f[i-1][j];
else
f[i][j] = (f[i-1][j] > (f[i-1][j-C[i]]+W[i])? f[i-1][j]:(f[i-1][j-C[i]]+W[i]));
}
}
printf("value:weight: ");
for(int i=1;i<4;i++)
{
printf("%d:%d ",C[i],W[i]);
}
printf("\nThe final value is %d\n",f[N][V]);
return 0;
}
运行结果:
0 0
- 百度面试题 0-1背包问题-动态规划法
- 0/1背包问题 - 动态规划法
- 0-1背包问题 动态规划法
- 0-1背包问题 动态规划法
- 百度面试题 最长公共子串-动态规划法
- 动态规划-试题(2)-背包问题
- 0/1背包问题动态规划详解
- 动态规划解0-1背包问题
- 0/1背包问题动态规划详解
- 动态规划 ------0-1背包问题
- 0/1背包问题动态规划详解
- 动态规划解决0-1背包问题
- 0/1背包问题动态规划详解
- 0-1背包问题--动态规划解法
- 动态规划解0-1背包问题
- 0-1背包问题动态规划
- 0-1背包问题,动态规划求解
- 动态规划解决0-1背包问题
- Linux分区、设备名
- hdu3389
- 在operator=中处理自我赋值(Effective C++_11)
- 关于Viewpager设置setOffscreenPageLimit引起的效果和问题
- 初探kali Linux
- 百度面试题 0-1背包问题-动态规划法
- IOS--Swift 01
- sql存储过程
- Handler 机制学习之基本用法
- 为html表格添加双击事件,并获取<td>节点的值
- java中Map,List与Set的区别(一)
- LeetCode之Best Time to Buy and Sell Stock II
- sql实现从两个表获取字段组成表数据再插入到函数表中
- x5studio的常用操作