问题描述
- 装箱问题 第二层循环为什么要倒过来?
-
#include
#include
using namespace std;
int max(int x, int y)
{
return x>y?x:y;
}
int main()
{
int v,n;
cin >> v >> n;
int a[n];
int dp[v+1];
memset(dp, 0, sizeof(dp));
for(int i=0; i
{
cin>>a[i];
for(int j=v; j>=a[i]; j--)//循环为什么要倒过来?
{
dp[j] = max(dp[j], dp[j-a[i]]+a[i]);
}
}
cout << v-dp[v];
}
解决方案
代码不完整,先贴完整,用markdown标记。
解决方案二:
我看似是ACM题目。
你需要把题目发过来,对于dp(动态规划)题目,需要根据具体题目来分析实现。
时间: 2024-10-27 21:18:13