您的位置:首页 > 其它

算法导论三剑客之 动态规划 01背包问题

2014-06-21 06:58 357 查看
#include "iostream"
using namespace std;

float MAX(float m1,float m2){
if(m1>=m2)
return m1;
else
return m2;
}

float bag_Zero_One(int n,float v,float p[],float w[]){
if(n==0||v==0)
return 0;
else{
float m2;

m2=bag_Zero_One(n-1,v,p,w);
if(v>=w
){
float m1;
m1=bag_Zero_One(n-1,v-w
,p,w)+p
;
m2=MAX(m1,m2);
}
return m2;
}
}

void main(){
float p[]={0,10,3,2};
float w[]={0,5,6,7};
float v=12;
cout<<"Result:"<<bag_Zero_One(3,v,p,w)<<endl;
getchar();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: