讨论 / 为什么不能AC啊!!!!
xhp956614463 2013-07-19 02:58:00
点我顶贴 收藏 删除
#include<stdio.h>

long int max(long int a,long int b)

{

if(a>b)return a;

else return b;

}

int main()

{

int N,m,v[26],p[26],i,j;

long int s[26][3000]={0};

scanf("%d%d",&N,&m);

for(i=1;i<=m;i++)

scanf("%d%d",&v[i],&p[i]);

for(i=1;i<=m;i++)

{

for(j=N;j>=0;j--)

{

if(j-v[i]>=0)

s[i][j]=max(s[i-1][j],s[i-1][j-v[i]]+v[i]*p[i]);

else

s[i][j]=s[i-1][j];

}

}

printf("%d\n",s[m][N]);

}

#1 107229HR@2013-07-19 02:58:00
回复 删除
数组开小了吧。。。

RT,long int s[26][10001]={0};应该就好了

查看更多回复
提交回复