解题思路:简单的背包问题
注意事项:
参考代码:
#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 |
简单编码 (C++代码)浏览:678 |
大小写转换 (C语言代码)浏览:859 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:548 |
图形输出 (C语言代码)浏览:1387 |
1054题解浏览:467 |
Tom数 (C语言代码)浏览:527 |
C二级辅导-进制转换 (C语言代码)浏览:660 |
1162答案错误,为什么浏览:644 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:376 |