哪位大佬知道這段代碼哪里錯了啊
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int N, V;
int v, w, s;
cin >> N >> V;
int dp[110];
int i, j, k;
for (int j = 1; j <= N; j++) {
dp[ j ] = 0 ;
}
for (i = 1; i <= N; i++) {
cin >> v >> w >> s;
for (j = V; j >= 0; j--) {
for (k = 1; k <= s && k*v <= j; k++)
{
dp[j] = max(dp[j], dp[j - k * v] + k * w);
}
}
}
cout << dp[V];
return 0;
}
正確代碼:
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int A=110;
int dp[A];
int main()
{
int N, V;
int v, w, s;
cin >> N >> V;
int i, j, k;
for (int j = 1; j <= N; j++) {
dp[ j ] = 0 ;
}
for (i = 1; i <= N; i++) {
cin >> v >> w >> s;
for (j = V; j >= 0; j--) {
for (k = 1; k <= s && k*v <= j; k++)
{
dp[j] = max(dp[j], dp[j - k * v] + k * w);
}
}
}
cout << dp[V];
return 0;
}
應該就是全域定義dp陣列的問題,哪位大佬可以解釋一下下
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239715.html
標籤:Eclipse
上一篇:求lua文本解密
