作者在 2010-12-26 21:40:36 发布以下内容
#include<stdio.h>
void readdata();
void printresult();
void search(int);
void checkmax();
int w[10],v[10];
int c=35,n=10;
int a[10],max=0;
void main()
{
readdata();
search(0);
printresult();
}
void readdata()
{
int i;
for(i=0;i<10;i++)
scanf("%d%d",&w[i],&v[i]);
}
void printresult()
{
printf("%d\n",max);
}
void checkmax()
{
int weight=0,val=0,i;
for(i=0;i<10;i++)
if(a[i]==1)
{
weight+=w[i];
val+=v[i];
}
if(weight<=c)
if(val>max)
max=val;
}
void search(int m)
{
if(m>=10)
checkmax();
else
{
a[m]=1;
search(m+1);
a[m]=0;
search(m+1);
}
}
void readdata();
void printresult();
void search(int);
void checkmax();
int w[10],v[10];
int c=35,n=10;
int a[10],max=0;
void main()
{
readdata();
search(0);
printresult();
}
void readdata()
{
int i;
for(i=0;i<10;i++)
scanf("%d%d",&w[i],&v[i]);
}
void printresult()
{
printf("%d\n",max);
}
void checkmax()
{
int weight=0,val=0,i;
for(i=0;i<10;i++)
if(a[i]==1)
{
weight+=w[i];
val+=v[i];
}
if(weight<=c)
if(val>max)
max=val;
}
void search(int m)
{
if(m>=10)
checkmax();
else
{
a[m]=1;
search(m+1);
a[m]=0;
search(m+1);
}
}