分析:
给出N个正方形,每个正方形正面的四个角各有一种颜色,要求组成正方体的方案数(由于每个正方形中间都有一个数字,所以方向不同也算不同方案)。
也就是说,两种方案视为相同,当且仅当一个正方体可以通过各种旋转得到另一个。
分析:
考虑到N非常小(400)
有一个很显然的性质:只要确定了正方体一组正对的面的各个角的颜色,就可以唯一确定整个正方体。
所以。。。不就是爆枚么。。。爆枚一个正方形,再爆枚另一个以及相对方向,作为其对面的,然后一个map存方案即可。
注意一下,因为正方形可以旋转,所以存入map时,要把旋转4次的结果都插入进去。去重的时候也要将旋转之后的各个方案都去掉。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#define SF scanf
#define PF printf