一维数组实现01背包
2015-08-14 21:20
281 查看
#include<stdio.h>
#include<string.h>
int d[200],w[200],v[200],n,W;
int max(int a,int b)
{
return a>b?a:b;
}
void fun()
{
int i,j;
memset(v,0,sizeof(v));
for (i=0;i<n;i++)
for (j=W;j>=0;j--)
{
if (j>=w[i])
v[j]=max(v[j-w[i]]+d[i],v[j]);
}
}
int main()
{
int i;
while (~scanf("%d%d",&n,&W)) //输入物品数量以及背包的总容量
{
for (i=0;i<n;i++)
scanf("%d%d",&w[i],&d[i]); //输入每个物品的对应的容量以及价值
fun();
printf("%d\n",v[W]);
}
return 0;
}
//通过对背包容量的控制,到最后得到最大价值
#include<string.h>
int d[200],w[200],v[200],n,W;
int max(int a,int b)
{
return a>b?a:b;
}
void fun()
{
int i,j;
memset(v,0,sizeof(v));
for (i=0;i<n;i++)
for (j=W;j>=0;j--)
{
if (j>=w[i])
v[j]=max(v[j-w[i]]+d[i],v[j]);
}
}
int main()
{
int i;
while (~scanf("%d%d",&n,&W)) //输入物品数量以及背包的总容量
{
for (i=0;i<n;i++)
scanf("%d%d",&w[i],&d[i]); //输入每个物品的对应的容量以及价值
fun();
printf("%d\n",v[W]);
}
return 0;
}
//通过对背包容量的控制,到最后得到最大价值
相关文章推荐
- Genealogical tree 2367 (拓扑排序)
- POJ-3326(模拟登录统计)
- hdu 2896 AC自动机 保存编号
- zoj 3469 Food Delivery 区间DP(难)
- POJ--2367--Genealogical tree
- Summary for week5
- GUI
- uva12486 Space Elevator(数位dp)
- 定义自己的仪表板DashBoard - -kankanstyle
- 基数排序
- Jquery-截取过长字符串
- Python的中文处理
- 逃生
- LeetCode-Convert Sorted Array to Binary Search Tree
- ubuntu 15.04 编译Android-VLC
- JQuery找页面中的关键字
- 冯·诺依曼体系结构与哈佛体系结构
- PM2部署资料
- 哪款Linux发行版是你的最佳选择呢?
- LeetCode: Spiral Matrix螺旋矩阵