AtCoder153E問題でWAになる理由が分かりません。提出コードは以下の通りです。
C++
1#include <iostream> 2#include <string> 3#include <algorithm> 4#include <vector> 5#include <map> 6#include <bitset> 7#include <stack> 8#include <queue> 9#include <list> 10#include <iomanip> 11#include <numeric> 12using namespace std; 13typedef long long ll; 14const int INF = 1001001001; 15ll mod = 1000000007; 16 17int main() 18{ 19 int h, n; 20 cin >> h >> n; 21 vector<int> a(n), b(n); 22 for (int i = 0; i < n; i++) cin >> a[i] >> b[i]; 23 24 vector<vector<int>> mp(n, vector<int>(h + 1, INF)); 25 for (int i = 0; i < n; i++) mp[i][0] = 0; 26 27 for (int i = 0; i < n; i++) { 28 for (int j = 0; j < h; j++) { 29 int nj = min(j + a[i], h); 30 if (0 < i) mp[i][nj] = min(mp[i][nj], mp[i - 1][nj]); 31 if (mp[i][j] != INF) mp[i][nj] = min(mp[i][nj], mp[i][j] + b[i]); 32 } 33 } 34 cout << mp[n - 1][h] << endl; 35} 36
テストケースのmax_06がWAになります。入力例をデバッグで、ウォッチしましたが、自分なりに個数制限なしナップサックDPのアルゴリズムは組めていると思っています。現時点ではatcoder_testcasesにテストケースはアップされていません。上のコードのどこが間違っているのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/28 17:45