ダイナミックプログラミングを使用してナップザック問題を解決するための共通のアルゴリズムがあります。しかし、W = 750000000では正しく動作しません。なぜなら、不正なallocのエラーがあるからです。どのようにWの私の価値のためにこの問題を解決するための任意のアイデア?ダイナミックプログラミングを使用したナップザック
int n=this->items.size();
std::vector<std::vector<uint64_t>> dps(this->W + 1, std::vector<uint64_t>(n + 1, 0));
for (int j = 1; j <= n; j++)
for (int k = 1; k <= this->W; k++) {
if (this->items[j - 1]->wts <= k)
dps[k][j] = std::max(dps[k][j - 1], dps[k - this->items[j - 1]->wts][j - 1] + this->items[j - 1]->cost);
else
dps[k][j] = dps[k][j - 1];
}
@George申し訳ありません、C++ – Kayrosik
@FantasticMrFox done – Kayrosik