solution
这道题的难点就是把形状相同的块算成一种,旋转对称都算是一种,如何识别块是形状相同。那就要用到hash,整体处理过程中用到了一个新的算法
洪水填充(Flood fill)算法:从一个起始节点开始把附近与其连通的节点提取出或填充成不同颜色颜色,直到封闭区域内的所有节点都被处理过为止,是从一个区域中提取若干个连通的点与其他相邻区域区分开(或分别染成不同颜色)的经典算法。
如何判断块的形状相同呢?
那就用他们的每个块之间的距离,然后加起来,如果误差小于eps,那么我们就可以近似认为这两个块的形状是一样的。
新学一个知识点
fabs(x),浮点数取绝对值