AtCoderアルゴリズムと数学演習問題集の009 ”Brute Force 2” を解いています。
009 - Brute Force 2
どこが間違っているのか分かりません。
自分のコードのどこが間違っているか指摘してほしいです。
お願いします。
自分のこれです。
c++
1#include<iostream> 2#include<vector> 3using namespace std; 4 5template<class T>void ch(T& a, T b) { 6 if (a < b)a = b; 7} 8int main() { 9 int i, j; 10 long long n, w; 11 cin >> n >> w; 12 vector<long long>a(n + 1); 13 vector<vector<long long>>dp(n + 5, vector<long long>(w + 5, 0)); 14 for (i = 1; i <= n; i++)cin >> a[i]; 15 for (i = 1; i <= n; i++) { 16 for (j = 0; j <= w; j++) { 17 dp[i][j] = dp[i - 1][j]; 18 if (j - a[i] >= 0) { 19 dp[i][j] = a[i]; 20 ch(dp[i][j], (dp[i][j] += dp[i - 1][j - a[i]])); 21 22 } 23 } 24 } 25 for (i = 1; i <= n; i++) { 26 for (j = 0; j <= w; j++) { 27 cout << dp[i][j]; 28 } 29 cout << endl; 30 } 31 if (dp[n][w] == w)cout << "Yes" << endl; 32 else cout << "No" << endl; 33}

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/08/14 01:51
2022/08/14 10:10
2022/08/15 00:53
2022/08/15 12:32 編集
2022/08/15 12:32
2022/08/15 12:39
2022/08/16 09:40