您的位置:首页 > 其它

01bag problem measure1:most easiest way to find the answer.measure2:use the easier way to solve

2018-03-23 16:10 477 查看
i  travel the whole binary tree.
#include<iostream>
#include<stdio.h>
#define Max_N 100
using namespace std;
int res=0,Max=0;
int N,W;
int t[Max_N][2];
void fun(int i,int j)
{
if(i==N)
{
if(res>Max&&j>=0)
{
Max=res;
printf("res is %d\n",res);
}

}
else
{
res+=t[i][1];
fun(i+1,j-t[i][0]);
res-=t[i][1];
fun(i+1,j);
}
}
int main()
{
scanf("%d%d",&N,&W);
for(int i=0;i<N;i++)
{
scanf("%d%d",&t[i][0],&t[i][1]);
}
fun(0,W);
printf("the final result is %d\n",Max);
return 0;
}

measure2:#include<iostream> #include<stdio.h> #define Max_N 100 using namespace std; int res=0,Max=0; int N,W; int t[Max_N][2]; void fun(int i,int j) { if(i==N) { if(res>Max&&j>=0) { Max=res; printf("res is %d\n",res); } } else { res+=t[i][1]; fun(i+1,j-t[i][0]); res-=t[i][1]; fun(i+1,j); } } int main() { scanf("%d%d",&N,&W); for(int i=0;i<N;i++) { scanf("%d%d",&t[i][0],&t[i][1]); } fun(0,W); printf("the final result is %d\n",Max); return 0; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐