题意
给定三维空间的n个长方体,每个长方体以其一条体对角线的坐标形式给出,即对于每一个长方体i,其一条体对角线的两个端点的坐标会给出。
现在对于每一个给出的长方体,求出其它给出的长方体,与其共面的长方体个数。(保证每个长方体两两不相交)
思路
首先我们第一个关注的应该是坐标的数据范围,这个数据范围显示是可以支持我们枚举x,y,z的。我们得到体对角线的两个端点后,我们可以循环遍历x1<=i<x2,y1<=j<y2,z1<=z<z2,将其用三维数组进行编号。然后接下来就到了共面环节:当两个长方体共面,当且a[i+1][j][k]!=a[i][j]k时,两者共面。注意这里我们将其中一个面只赋给一个长方体,这句话可能有点奇怪,但是仔细想想当两个长方体共顶点时的情况就很好理解了,具体的看下面的代码吧。
代码
https://atcoder.jp/contests/abc312/submissions/54195695