memory__24746 2016-10-26 10:13:06
点我顶贴
收藏
删除
#include <stdio.h>
int v[25],p[25];
int main()
{
int i,j,temp,sum,N,m;
scanf("%d %d",&N,&m);
for(i=0;i<2*m;i++)
{
if((i+1)%2==0)
scanf("%d",&p[i/2]);
else
scanf("%d",&v[i/2]);
}
for(i=0;i<10;i++)
for(j=i+1;j<m;j++)
{
if(p[i]<p[j])
{
temp=p[j];
p[j]=p[i];
p[i]=temp;
temp=v[j];
v[j]=v[i];
v[i]=temp;
}
}
sum=0;temp=0;
for(i=0;sum<=N,i<m;i++)
{
sum=sum+v[i];
if(sum>N)
{
sum-=v[i];
continue;
}
temp=temp+v[i]*p[i];
}
printf("%d\n",temp);
return 0;
}
#3 memory__24746@2016-10-27 09:44:35
33884
回复
删除
回复 #2 Nightingalelyy:以前没听说过动态规划,,,然后百度了说是01背包,还没太明白,