#P1431. 消灭星星
消灭星星
消灭星星
题目描述
Orange最近迷上了消灭星星这款风靡的游戏,在游戏中,你最开始会得到一个由若干个联通块构成的 大小的矩阵。你每次可以选择3个及以上的连在一起的颜色相同的星星(即一个大小大于等于3的四连通块)进行消灭,同时你将会得到消灭星星总数个积分。
同时,游戏存在重力系统,如果你消灭了中间的星星,导致上方的物块不受支撑,那么他就会下落,直到遇到地面或者落到某个物块上。(注意:下落可能改变联通块的形状!)
现在,Orange将给你一个 的矩阵,其中每个元素的数字表示当前星星的颜色。现在,你需要帮助Orange找出一种方法,使得他的得分最大化,输出最大化的得分。
输入格式
输入第一行为两个整数 ,表示矩阵大小。 接下来为一个 的矩阵。
数据范围
输出格式
输出一个整数,表示Orange最高的可能得分,即最多消灭的星星数量。
样例 #1
样例输入 #1
4 5
1 1 4 2 2
1 3 3 4 2
3 3 3 4 4
1 1 4 2 2
样例输出 #1
20
提示
一种可能的最优消除方法如下:
- 消除颜色3的联通块。
1 1 4 2 2 | 2 2
1 3 3 4 2 | 1 4 2
3 3 3 4 4 | 1 1 4 4 4
1 1 4 2 2 | 1 1 4 2 2
- 消除颜色4所在的联通块
2 2 |
1 4 2 | 1 2
1 1 4 4 4 | 1 1 2 2
1 1 4 2 2 | 1 1 2 2
- 最后消除颜色1和2所在的联通块,使得所有的星星被消灭,因此答案为20。