讨论 / 请大牛帮我看看
rw 2010-11-17 04:23:00
点我顶贴 收藏 删除
测试结果1: 通过本测试点|有效耗时47ms

测试结果2: 通过本测试点|有效耗时47ms

测试结果3: 通过本测试点|有效耗时47ms

测试结果4: 通过本测试点|有效耗时47ms

测试结果5: 通过本测试点|有效耗时47ms

测试结果6: 通过本测试点|有效耗时46ms

测试结果7: 通过本测试点|有效耗时47ms

测试结果8: 测试结果错误.错误结果为:34458

正确结果应为:34803

测试结果9: 测试结果错误.错误结果为:29796

正确结果应为:34864

测试结果10: 测试结果错误.错误结果为:32132

正确结果应为:34966

#include "stdio.h"

long m,n,s[40][31000]={0},w[30],p[30],i,j;

long max(long a,long b)

{

if(a>b)return a;

return b;

}

int main()

{

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

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

{

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

w[i]=p[i];

}

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

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

{

if(j-p[i]>=0)s[i][j]=max(s[i-1][j],s[i-1][j-p[i]]+w[i]);

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

}

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

getchar();

getchar();

}

查看更多回复
提交回复