T638411 2048
题目背景
这是 yzh 玩[2048](https://2048.game)时想到的题。
《三体》中的主最近想锻炼隐瞒人类的能力,于是 TA 玩上了 2048。~~(有用吗)~~
由于 TA 很忙,所以想快速知道能得到多少分。于是 TA 把这个任务交给了在 ETO 的你。
题目描述
给定一个 $4 \times 4$ 的矩阵,每个元素 $A_{i,j}$ 表示第 $i$ 行第 $j$ 列格子的数值。若 $A_{i,j} = 0$ 表示该格子为空。游戏规则如下:
1. **移动操作**:玩家每次选择上、下、左、右中的一个方向执行操作。所有可移动的方块沿该方向滑动,直至遇到边界或其他方块。若两个相邻(沿移动方向)方块数值相等,则它们会合并为一个新方块,新数值为原两方块之和,玩家获得等于该数值的分数。新生成的方块不会在本次操作中继续合并。但是,一次操作可能产生多次合并。
2. **刷新规则**:
- 初始刷新点为 $(1,1)$。
- 每次操作后(无论移动是否有效),系统按行优先顺序($(1,1) \to (1,2) \to \cdots \to (4,4) \to (1,1)$)循环遍历格子:
- 从当前刷新点开始,找到第一个空格子(数值为 $0$),在此生成数值为 $2$ 的方块。
- 刷新点更新规则:
- 若在位置 $(i,j)$ 生成方块,则下一刷新点为遍历顺序中 $(i,j)$ 的下一个位置(若 $(i,j) = (4,4)$ 则下一位置为 $(1,1)$)。
- 若当前刷新点上面已经有方块,则下一刷新点为当前刷新点的下一个位置。
3. **游戏结束**:当所有格子非空,且任意方向的操作均无法引发方块移动或合并时,游戏终止。
假设主只会按上下左右的顺序按键,那么 TA 最多能得多少分呢?
输入格式
一个 $4 \times 4$ 的矩阵。
输出格式
一行,一个整数,表示主能达到的最大分数。
说明/提示
对于 100% 的数据,保证 $0 \le a_{i,j} \le 2048$。