解题思路:简单的背包问题
注意事项:
参考代码:
#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二级辅导-计负均正 (C语言代码)浏览:1192 |
开心的金明 (C++代码)浏览:1188 |
IP判断 (C++代码)浏览:672 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:525 |
【密码】 (C语言代码)浏览:333 |
分糖果 (C++代码)浏览:1438 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:543 |
1017题解浏览:588 |
罗列完美数 (C语言代码)浏览:491 |