動的プログラミング

最長のビットニック サブシーケンスの印刷
2026

最長のビットニック サブシーケンスの印刷

最長ビットニック サブシーケンス問題は、最初に増加し、次に減少するような、指定されたシーケンスの最長のサブシーケンスを見つけることです。昇順にソートされたシーケンスは、降順部分が空であるビットニックとみなされます。同様に、降順シーケンスは増加部分が空であるビットニックとみなされます。例:

ペアのチェーンの最大長を印刷します
2026

ペアのチェーンの最大長を印刷します

n 組の数字が与えられます。どのペアでも、最初の数値は常に 2 番目の数値より小さくなります。 b < c の場合、ペア (c, d) は別のペア (a, b) に続くことができます。このようにしてペアのチェーンを形成できます。指定されたペアのセットから形成できる最長のチェーンを見つけます。例:

n ビットが設定された k ビット数値のすべての組み合わせ (1  <= n  <= k) をソート順に検索します。
2026

n ビットが設定された k ビット数値のすべての組み合わせ (1 <= n <= k) をソート順に検索します。

数値 k が与えられると、1 <= n <= k の n ビットが設定された k ビットの数値の可能な組み合わせをすべて見つけます。この解決策では、最初に 1 ビットが設定されたすべての数値を出力し、続いて 2 ビットが設定された数値を、すべての k ビットが設定された数値まで出力する必要があります。 2 つの数値の設定ビット数が同じ場合は、小さい数値が最初に来る必要があります。例:

2 つの文字列を同一にするための最小コスト
2026

2 つの文字列を同一にするための最小コスト

2 つの文字列 X と Y、および 2 つの値、costX とcostY を指定します。指定された 2 つの文字列を同一にするために必要な最小コストを見つける必要があります。両方の文字列から文字を削除できます。文字列 X から文字を削除するコストはコスト X で、文字列 Y から文字を削除するコストはコスト Y です。文字列からすべての文字を削除するコストは同じです。

指定された重量を袋に詰めるための最小コスト
2026

指定された重量を袋に詰めるための最小コスト

サイズ W kg の袋が与えられ、さまざまな重さのオレンジのパケットのコストが配列 Cost[] で提供されます。ここで、cost[i] は基本的にオレンジの 'i' kg パケットのコストです。ここで、cost[i] = -1 は、「i」kg のオレンジのパケットが入手できないことを意味します。正確に W kg のオレンジを購入するための最小総コストを見つけます。正確に W kg のオレンジを購入できない場合は、-1 を出力します。利用可能なすべてのパケット タイプが無限に供給されると想定できます。注: 配列はインデックス 1 から始まります。

平均値が最大のパス
2026

平均値が最大のパス

サイズ N*N の正方行列が与えられ、各セルは特定のコストに関連付けられます。パスは、左上のセルから始まり右または下にのみ移動し、右下のセルで終了する特定のセルのシーケンスとして定義されます。既存のすべてのパスの平均が最大になるパスを見つけたいと考えています。平均は、総コストをパス内で訪問したセルの数で割ったものとして計算されます。

特定の差があるペアの最大合計
2026

特定の差があるペアの最大合計

整数の配列と数値 k が与えられたとします。配列の 2 つの数値の差が厳密に k 未満であれば、それらの数値をペアにすることができます。タスクは、素のペアの可能な最大合計を見つけることです。 P ペアの合計は、ペアのすべての 2P 数の合計です。

友達のペアリングの問題
2026

友達のペアリングの問題

n 人の友達がいると、それぞれが独身のままになることも、他の友達とペアになることもできます。各友達は 1 回だけペアリングできます。友達が一人でいられる方法、またはペアになる方法の合計を調べてください。

3 次元配列の最小合計パス
2026

3 次元配列の最小合計パス

3 次元配列 arr[l][m][n] が与えられた場合、タスクは配列の最初のセルから配列の最後のセルまでの最小パス合計を見つけることです。隣接する要素にのみトラバースできます。つまり、特定のセル (i, j, k) から、セル (i+1, j, k)、(i, j+1, k)、および (i, j, k+1) をトラバースできます。対角線のトラバースは許可されません。すべてのコストは正の整数であると仮定できます。