0

重複の可能性:
配列中央値変換の最小ステップ

タイトルにあるように、配列内のすべての要素をmax要素に置き換える必要がありますが、適用できる操作は次のとおりです。

サイズnの配列Aが与えられた場合、その中央値は、昇順で並べ替えられたときのインデックス[n / 2] +1の要素です。適用できる唯一の操作は、隣接するサブ配列B [l ... r] l>=1およびr<=n(1ベースのインデックス)であり、そのすべての要素を中央値に置き換えます。

指定された配列内のすべての要素を配列内の最大要素に変換できる操作の最小数を決定する必要があります。

私はこれを解決するためのアプローチを見つけることができません..私が理解している唯一のポイントは、配列に最大要素がm回含まれている場合、上記の操作で最大でm個の要素のみを置き換えることができるということです。最大要素は>=n / 2になり、1回の操作で済みます。

たとえば、Aが1 2 3として与えられた場合、最初に中央値が3のサブ配列2 3を取得できるため、配列は1 3 3になり、サイズ3のサブ配列を取得すると答えは333になります。

4

0 に答える 0