解题思路:简单的背包问题
注意事项:
参考代码:
#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语言程序设计教程(第三版)课后习题7.4 (Java代码)浏览:842 |
简单的a+b (C语言代码)浏览:647 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)浏览:1284 |
简单的a+b (C语言代码)浏览:548 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:512 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1523 |
上车人数 (C语言代码)浏览:781 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:539 |
三角形 (C++代码)递推浏览:760 |
简单的a+b (C语言代码)浏览:817 |