[競プロ][C++] Knapsack DP

投稿者Demystifyプレイ回数89
難易度(3.3) 436打 英語 記号タグ競プロ C++
順位 名前 スコア 称号 打鍵/秒 正誤率 時間(秒) 打鍵数 ミス 問題 日付
1 Demystif 5944 A+ 6.0 98.8% 72.5 436 5 22 2022/06/07
2 ai 2034 F+ 2.1 96.6% 206.9 436 15 22 2022/06/11

関連タイピング

問題文

ふりがな非表示 ふりがな表示

(#include <bits/stdc++.h>)

#include <bits/stdc++.h>

(using namespace std;)

using namespace std;

(int main() {)

int main() {

(int N, W;)

int N, W;

(cin >> N >> W;)

cin >> N >> W;

(vector<int> w(N), v(N);)

vector<int> w(N), v(N);

(for (int i = 0; i < N; i++) {)

for (int i = 0; i < N; i++) {

(cin >> w[i] >> v[i];)

cin >> w[i] >> v[i];

(})

}

(vector<vector<int>> dp(N+1, vector<int>(W+1, 0));)

vector<vector<int>> dp(N+1, vector<int>(W+1, 0));

(for (int i = 0; i < N; i++) {)

for (int i = 0; i < N; i++) {

(for (int j = 0; j <= W; j++) {)

for (int j = 0; j <= W; j++) {

(if (0 <= j - w[i]) {)

if (0 <= j - w[i]) {

(dp[i+1][j] = max(dp[i][j], dp[i][j - w[i]] + v[i]);)

dp[i+1][j] = max(dp[i][j], dp[i][j - w[i]] + v[i]);

(} else {)

} else {

(dp[i+1][j] = dp[i][j];)

dp[i+1][j] = dp[i][j];

(})

}

(})

}

(})

}

(int ans = *max_element(dp[N].begin(), dp[N].end());)

int ans = *max_element(dp[N].begin(), dp[N].end());

など

(cout << ans << endl;)

cout << ans << endl;

(})

}

問題文を全て表示 一部のみ表示 誤字・脱字等の報告

◆コメントを投稿

※誹謗中傷、公序良俗に反するコメント、歌詞の投稿、宣伝行為は禁止です。

※このゲームにコメントするにはログインが必要です。

※コメントは日本語で投稿してください。

※歌詞のコメントは著作権侵害となります。投稿しないでください!