[55](題目分數) 在一個200*200的網格表的每個單元格上放置一輛汽車,它面向四個基本方向之一。在一步操作中,選擇一輛前面沒有汽車立即擋住的汽車,並將其向前滑動一個單元格。如果一步操作會導致汽車離開網格,則將該汽車移除。對初始放置方法的要求是,一定存在一系列操作,最終可以將所有汽車從網格中移除。在所有這樣的初始放置方法中,確定完成此操作的最大可能移動次數。
解:考慮更一般的n*n網格表。顯然在一行/列上不能出現方向相對的汽車,否則不能移出網格。先證明n次移動出網格的汽車個數最多為2n-1:n次移動出網格的汽車只可能在四條邊上出現。四條邊上除了四個角的網格中,最多有2(n-2)個n次移出網格的,否則方向會相對。四個角最多有三個,如果有四個也出不去。所以最多有2n-1個。舉例:第一行和最後一列方向全向下,第一列和最後一行剩餘的全向右。同理n-1次移動出去的最多也為2n-1,但是這2n-1個裡有兩個是n次出去的,為了儘可能使移動次數多,這兩個要n次出去不能n-1次出去,所以n-1次移動出去的汽車最多為2n-3個,同理n- 2次移動出去的最多為2n-5。所以移出所有汽車的最多次數為(1+2*3+3*5+···+n*(2n-1))。下面給出一個最多次數的例子:方格表左上-右下對角線的右上側部分(包括對角線)方向為下,左下側部分(不包括對角線)方向向右。