CSP 何以包邮 C语言 0-1背包解法,感觉写得没问题,常规的测试用例都过,但是0分。
CSP题目如下
代码如下
#include
int a[33];
int f[33][300003];
int main(){
int n,x,sum;
scanf("%d %d",&n,&x);
int i,j;
for(i=1;i1;i++){
scanf("%d",&a[i]);
sum+=a[i];
}
x=sum-x;
for(i=1;i<=n;i++){
for(j=0;j<=x;j++){
if(j-a[i]>=0){
if(f[i-1][j]>=f[i-1][j-a[i]]+a[i]){
f[i][j]=f[i-1][j];
}
else{
f[i][j]=f[i-1][j-a[i]]+a[i];
}
}
else{
f[i][j]=f[i-1][j];
}
}
}
printf("%d",sum-f[n][x]);
return 0;
}
参考这个
https://blog.csdn.net/m0_59304732/article/details/128065155