解题思路:简单的背包问题
注意事项:
参考代码:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,m,i,j,a[40],dp[20005];
cin>>n;
for(i=0;i<=n;i++)
dp[i]=n;
cin>>m;
for(i=0;i<m;i++)
cin>>a[i];
for(i=0;i<m;i++)
for(j=n;j>=a[i]&&dp[j-a[i]]>=a[i];j--)
dp[j]=min(dp[j-a[i]]-a[i],dp[j]);
cout<<*min_element(dp,dp+n+1);
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5228 |
WU-输出九九乘法表 (C++代码)浏览:1654 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:522 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:915 |
C语言考试练习题_保留字母 (C语言代码)浏览:700 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:556 |
1025题解浏览:732 |
1128题解(返回值为数组的情况)浏览:450 |
printf基础练习 (C语言代码)浏览:1792 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:479 |