問題是here。TopCoder算法:BrightLamps - n燈
我讀過其他解決方案和想法,但我不明白他們。
以下是mnbvmar的想法,能否詳細解釋一下, 您認爲是正確的?
如果你翻車了兩個連續的K-元素序列(即,
(i, i + 1, ..., i + K - 1)
和(i + 1, ..., i + K)
),只有兩個燈得到切換(i
和i + K
)。現在關鍵是要注意,每一個可能的組合做
K
- 元素翻轉,也可以用以下兩種實現:
撥動第一
K
燈,切換任何兩個燈距離
K
。(每個切換
K
連續燈是這些操作的複合)。現在更簡單了。當然,每個操作都可以完成零次或一次(不止一次)。比方說,我們沒有使用最佳解決方案中的第一個操作。然後我們的序列溶解到
K
遠處的元素序列K
,其中您可以切換兩個連續的元素。這很容易解決;如果i
第 - 個序列具有偶數個關閉的燈,則可以將它們全部打開;在相反的情況下,很明顯我們不能全部打開它們,但是可以在序列中僅留下最低價值的燈。如果我們使用第一個操作該怎麼辦?然後,我們只需切換第一個
K
燈,然後執行與以前完全相同的步驟。
這是什麼,你不明白在這裏? – vish4071