UVA 1602 Lattice Animals

题目

输入n、w、h($1leqslant n leqslant 10, 1leqslant w,h leqslant n$),求能放在w*h网格里的不同的n连块的个数(注意,平移、旋转、翻转后相同的算作一种)。例如,2*4里的5连块有5种(第一行),而3*3里的8连块有以下3种(第二行),如图所示。

题解

判重部分有点难……茫然

看了紫书

平移可以强制整个图放左上角

旋转和翻转比较不好判断= =

因为旋转加翻转可能有多种情况(不知道有8种),害怕太慢不敢写

但输入比较少,直接打表

代码就不贴了,太丢人了(记下思路= =)

教训

1.应该先用stl枚举下最大输入的情况数,然后开数组

2.因为有旋转,宽度和高度最后再考虑

3.直接存每个点的坐标,用矩阵存不好枚举

原文地址:https://www.cnblogs.com/sahdsg/p/10456653.html