dynamic-programming

    0

    1答えて

    私は動的プログラミングに苦労しており、必然的に助けが必要です!私はとても感謝しています。何時間も私は再帰的メソッドを非再帰的メソッドに変換しようとしていましたが、それを行うことはできませんでした。私の最初の仕事は、反復方程式の2つのアルゴリズムを書くことでした。最初の方法は再帰的方法であり、もう1つはループを使用してデータを保存する方法です。 は二つの整数、NおよびW、および2つの整数列S [N]

    0

    1答えて

    先ほどの講演では、変更の問題を解決するために欲張りな方法を使用することは必ずしも機能しないと言われました。 は、我々はn = 14に到達したい、と我々は異なる値の3枚のコインがあります:d1 = 1、d2 = 7、d3 = 10を次のように 本の例が与えられました。 欲張りのアプローチを使用すると、10 + 1 + 1 + 1 + 1(5コイン)になります。 ダイナミックな問題のアプローチでは、こ

    0

    1答えて

    これは古典的な0/1のナップザック問題の変形だと思います。 つまり、与えられた容量制限(Say 2V)でいくつかの宝を盗むことを計画していると仮定します。しかし、指定された容量制限では、2つの選択肢があります:容量2Vの1つのバッグ、または容量がVの2つのバッグ。どのソリューションがより良いかを事前に計算するために使用できる数式がありますか(最適な価値を提供します)?あるいは、異なる再発規制によっ

    -2

    2答えて

    私は、重み付けされていない間隔のスケジューリングのためのDPアルゴリズムについて、誰かが私に理由を教えてくれるかどうか疑問に思っていました。 2つの配列[t1、...、tn]と[d1、...、dn]が与えられます。ここで、tiはジョブiの開始時刻、diはジョブiの期間です。また、ジョブは開始時刻でソートされるので、t1 < = t2 < = ... < = tnです。私は、重複することなく実行でき

    0

    2答えて

    私は動的プログラミングを使って何かを解決しようとしていますが、何か問題があります。私が動的プログラミングに取り組むとき、私は通常再帰的アルゴリズムを決定し、そこでそこから私の動的ソリューションに進みます。 m、nは、そのようなことn.lengthがm.lengthより大きく、nは文字「#が含まれていません:私は問題 トラブル を抱えているこの時間は、次の2つの文字列を持っていると言います' mを最

    0

    1答えて

    私は "1"、 "2"、 "3"、 "4"の4桁を持っています。 プログラムの入力は、上記の4桁のみを含む整数です。多くのインプットがあるでしょう。入力の 例:1123、4123、4444 Iは、次の規則に準拠し、所与の入力の順列の数を計算する必要があります どの2つの同様の数字はに隣接してはなりませんお互い。例:1223は許可されず、2123は許可されます。 開始末尾の数字は同じであってはなりま

    3

    2答えて

    ダイナミックプログラミングのフィボナッチシーケンスへの応用を学んでいて、質問がありました。ここでは参照用のコードは次のとおりです。 import java.math.BigInteger; import java.util.Arrays; public class FibonacciNumbersB { static BigInteger[] dp = new BigIntege

    1

    1答えて

    :ここ void constructPrintLIS(int arr[], int n) { std::vector< std::vector<int> > L(n); L[0].push_back(arr[0]); for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++)

    -1

    2答えて

    問題に再帰的なDP解を書きました。解決策はいくつかのテストケースで失敗しています(オーバーカウントまたは1回のアンダーカウント)。最終回答につながった州だけをどのように追跡したり、印刷したりすることができますか? 再帰関数は、このようなものです。それは4つの入力を取ります。前に特定の状態が評価されている場合は、std::mapから解決策を返します。それ以外の場合は、それを評価します。このソリューシ