2つの整数N<=10^5
とK<=N
が与えられます。ここN
で、は配列のサイズでありA[]
、K
はプロセスで選択できる連続サブシーケンスの長さです。各要素A[i]<=10^9
。ここで、最初に配列のすべての要素がマークされていないとします。各ステップで、長さのサブシーケンスを選択します。K
このサブシーケンスにマークされていない要素がある場合は、シーケンスで最小のマークされていない要素をすべてマークします。では、すべての要素をマークするための最小ステップ数を計算する方法は?
問題をよりよく理解するには、この例を参照してください-
N=5 K=3
A[]=40 30 40 30 40
ステップ1-間隔[1,3]を選択し、A[1]とA[3]をマークします
ステップ2-間隔[0,2]を選択し、A[0]とA[2]をマークします
ステップ3-間隔[2,4]を選択し、A[4]をマークします
したがって、ここでの最小ステップ数は3です。
私のアプローチ(通過するのに十分な速さではありません)-
私は配列の最初の要素から始めて、距離を置いてそれに等しいすべてのマークされていない要素をマークし、 1<=K
ずつ増やしていますsteps
。