#codefestival2016qualCd. [codefestival_2016_qualC_d]Friction

[codefestival_2016_qualC_d]Friction

高橋君有一个hwh * w的艺术品,艺术品的每一块都有一个小写字母表示颜色。

高橋君想把这个艺术品拆掉,他采取这样的方式:

选取一列并把这一列向下推一格,这样这一列最下边的颜色会消失。

但是这会产生代价。产生的代价是选择的这一列中,与相邻格子颜色相同的格子数。确切来说,当有一对格子(p,q)(p,q)满足

  • pp在所选的这一列
  • p,qp,q相邻
  • p,qp,q颜色相同

这对格子会产生11的代价。

请计算高橋君把这个艺术品完全拆除所需要的最小代价。 范围: 1h3001 \leq h \leq 300 2w3002 \leq w \leq 300