#P1022. Packing Unit 4D Cubes

    ID: 23 传统题 1000ms 256MiB 尝试: 7 已通过: 1 难度: 10 上传者: 标签>计算几何搜索Tehran 2002First Iran Nationwide Internet Programming Contest

Packing Unit 4D Cubes

当前没有测试数据。

通常我们认为存在三个几何维度;第四维度通常是时间。然而,定制机器协会(ACM)需要处理四个几何维度,因为他们的一位奇怪的客户EE3需要将四维产品装入垂直的超长方体(perpendicular parallelepipeds)中,然后运往银河系郊区新兴的市场。

EE3的每个产品由若干个单位四维立方体组成,这些立方体通过它们的(即三维立方体)粘合在一起。每个四维立方体有88个这样的面。左边的图片展示了一个四维立方体在平面上的投影,并标出了四个正交的主轴。我们需要发挥想象力才能在这样的投影中看出四维立方体的面。下面的图片试图说明沿四个轴的每个方向的两个面在四维空间中的位置。尽管使用平面投影不太容易说明,但我们已经尽力了,不是吗? 每个待包装的EE3产品由若干个单位四维立方体组成,这些立方体通过它们的三维立方体面粘合在一起。你的任务很简单:找到一个垂直的超长方体(四维盒子),其体积(以单位四维立方体数量计)最小,可以将产品装入其中以便运输。

输入

输入文件的第一行包含一个整数tt1t101 \leq t \leq 10),表示测试用例的数量,随后是每个测试用例的输入数据,描述一个EE3产品。每个测试用例的第一行是一个整数nn1n1001 \leq n \leq 100),表示产品中使用的单位四维立方体的数量。接下来是nn行,每行描述一个单位立方体,包含99个非负整数。

  • 第一个数是立方体的唯一标识符(正整数),
  • 其余88个数是该立方体相邻立方体的标识符,按以下顺序排列:
    1. 前两个数是沿x1x_1轴方向(看向x1x_1轴方向)的两个对立面粘合的立方体的标识符;
    2. 接下来的两个数是沿x2x_2轴方向的;
    3. 接下来的两个数是沿x3x_3轴方向的;
    4. 最后的两个数是沿x4x_4轴方向的。

如果某个面没有粘合的立方体,则用00代替标识符。

问题在于,ACM的员工可能会给出不一致的产品描述。这种不一致性有两个来源:

  1. 对称性:一致的描述必须是对称的,即如果立方体xx沿某个面与立方体yy粘合,那么立方体yy也必须沿相同的轴与立方体xx粘合。例如,以下描述是不一致的:
    3 0 0 1 0 0 0 0 0
    1 0 0 3 0 0 0 0 0
    
  2. 连通性:任何描述必须描述一个单一的实体,即产品中只能有一个连通分量。例如,以下描述是不一致的:
    1 2 0 0 0 0 0 0 0
    2 0 1 0 0 0 0 0 0
    3 0 0 4 0 0 0 0 0
    4 0 0 0 3 0 0 0 0
    

输出

每个测试用例的输出应占一行:

  • 如果描述是一致的,则输出可以装入产品的最小四维垂直超长方体的单位四维立方体数量;
  • 否则输出Inconsistent

示例输入 1

1
9
1 2 3 4 5 6 7 8 9
2 0 1 0 0 0 0 0 0
3 1 0 0 0 0 0 0 0
4 0 0 0 1 0 0 0 0
5 0 0 1 0 0 0 0 0
6 0 0 0 0 0 1 0 0
7 0 0 0 0 1 0 0 0
8 0 0 0 0 0 0 0 1
9 0 0 0 0 0 0 1 0

示例输出 1

81

来源

2002年德黑兰,第一届伊朗全国互联网编程竞赛