[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))。下面给出一个最多次数的例子:方格表左上-右下对角线的右上侧部分(包括对角线)方向为下,左下侧部分(不包括对角线)方向向右。
标签:HMMT,移出,网格,2024,麻省,汽车,出去,2n,移动 From: https://www.cnblogs.com/lau1997/p/18061368