所以我有一個編程比賽,我被一個問題困住了,這幾天我試圖解決它。因為我很想知道答案,但是我做不到。任何解釋或答案將不勝感激。這是問題:
大廳里正在舉辦一場音樂會。大廳是一條無限長的一維數軸,N個學生每人站在數軸上的某個點上。由于它們都分散在數軸上的不同位置,因此很難管理它們。所以組織者Kyle希望以這樣的方式在大廳中移動它們,使它們都處于連續的位置,例如,它們在位置2、3、4、5而不是像1、3、5那樣分散, 6. 簡單來說,它們之間沒有差距。有一次,Kyle 可以選擇任何一方最靠外的位置上的一個人。例如,在 1、3、5、6 中,最外面的位置是 1 和 6。他可以選擇其中任何一個并將它們移動到任何未占用的位置,這樣它們就不再位于最外面的位置了。這使得它們在每次移動時越來越靠近,直到它們都處于連續位置。找出可以完成此任務的最大和最小移動次數。
uj5u.com熱心網友回復:
我對你有一些想法,但我不完全確定我做對了..
所以:
如果數字 1 目前是最外面的,然后他跳到最高的數字,而數字 2 現在是最外面的數字,它無限地移動,另一端的情況也是如此,另一端的外面正在移動到下一個成為最后一個,所以上..有意義嗎?
uj5u.com熱心網友回復:
最大值是間隙數,因為效率最低的移動會將最外面的一對之間的間隙數減少一。
對于最小值,給定 k 人,在線性時間內(使用滑動視窗)找到人數最多的 k 個連續位置的范圍,并將此計數稱為 c。那么最小值是 kc,每次移動都會將某個人從這個視窗外面放到里面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/380282.html
下一篇:將坐標線寫入表示網格的二維陣列
