atcoder#ARC062C. [ARC062E] AtCoDeerくんと立方体づくり

[ARC062E] AtCoDeerくんと立方体づくり

题目描述

シカのAtCoDeerくんは正方形のタイルを N N 枚持っています。 各正方形の片面には 1N 1~N の数が書いてあって、正方形の各頂点にはそれぞれ色が塗られています。色は 0999 0~999 の整数で表され、 i i と書かれた正方形に塗られている色は、数の書かれている方向から見て左上、右上、右下、左下 の順に、 Ci,0,Ci,1,Ci,2,Ci,3 C_{i,0},C_{i,1},C_{i,2},C_{i,3} で与えられます(図1 1 を参照)。

1 1 : タイルの色と入力の対応

AtCoDeerくんはこれらのタイルを6 6 枚組み合わせて次のような条件を満たす立方体を作ろうと考えました。

  • 数の書いてある面が外側を向いている
  • 立方体の各頂点に対し、そこに集まる正方形の頂点は3 3 つあるが、それらには全て同じ色が塗られている

AtCoDeerくんのために条件を満たす立方体が何通りあるか求めてください。ただし、正方形には数が書いてあるので、色の構成が同じだとしても使ったタイルが異なったり、使ったタイルの向き(90° 90° 回転により4 4 通り考えられる)が異なるものは異なる立方体とみなします。 ただし、3次元空間で回転させることで使ったタイルの向きまで完全に一致するものは同じ立方体とみなします。

2 2 : 4方向のタイルの向き

输入格式

入力は以下の形式で標準入力から与えられる。

N N C1,0 C_{1,0} C1,1 C_{1,1} C1,2 C_{1,2} C1,3 C_{1,3} C2,0 C_{2,0} C2,1 C_{2,1} C2,2 C_{2,2} C2,3 C_{2,3} : : CN,0 C_{N,0} CN,1 C_{N,1} CN,2 C_{N,2} CN,3 C_{N,3}

输出格式

AtCoDeerくんが作れる立方体が何通りあるか出力せよ。

题目大意

有N块瓷砖,编号从1到N,并且将这个编号写在瓷砖的正中央;瓷砖的四个角上分别有四种颜色(可能相等可能不想等),并且用Ci,0,Ci,1,Ci,2,Ci,3C_{i,0},C_{i,1},C_{i,2},C_{i,3}分别表示左上、右上、右下、左下的颜色。颜色有1000种,编号从0到999。现在想知道,从这N块瓷砖中选出不同的6块,能围成多少本质不同的合法的立方体。 一个立方体被成为合法的,当且仅当瓷砖有编号的一侧在外面,并且立方体的每个顶点处的三个颜色相同。 注意,由于瓷砖的中间是写着编号的,因此将一个瓷砖旋转90度之后,这个瓷砖会发生变化。 也就是说一块瓷砖可以被用作四个方向(哪怕旋转后四个角的颜色对应相等)。 两个立方体被称作是本质相同的,当且仅当存在在空间中旋转地一个立方体的方式,使得其和第二个立方体一模一样(包括每面瓷砖上编号的方向)。

6
0 1 2 3
0 4 6 1
1 6 7 2
2 7 5 3
6 4 5 7
4 0 3 5
1
8
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
144
6
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
122880

提示

制約

  • 6N400 6≦N≦400
  • 0Ci,j999 (1iN , 0j3) 0≦C_{i,j}≦999\ (1≦i≦N\ ,\ 0≦j≦3)

Sample Explanation 1

下図のような立方体が作れます。 ![](https://atcoder.jp/img/arc062/094fbca5395bfaaea28c98c51230693b.png)