题目链接:uva 12326 &hdu 4092 Yummy Triangular Pizza
题目大意:给出n,表示用n个正三角形去组成图形,问可以组成多少种不同的三角形,旋转,镜像,都算同一种。
解题思路:参考别人的思路,很巧妙,主要就是建立三维坐标轴。
正立三角形x+y+z = 0
倒立三角形x+y+z ≠ 0
这样从初始装态为0 0 0的三角形开始逐个添加,每次进行旋转镜像,判断是否有没有重复。
每次判断重复的时候,枚举图形中的一个三角做为原点处理,生成hash值,以为n为多位16,所以x,y,z的范围不会大过8.
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>
using