AT_pakencamp_2024_day1_k Cube Construction

题目描述

> 将边长为 $N$ 的立方体,分割成 $N^3$ 个边长为 $1$ 的立方体小块。从这些小块中选择若干个,要求满足以下条件,并且在所有满足条件的选择方法中,所选块的数量 $m$ 最少,请你构造出一种方案: > > - 从立方体的三条互相垂直的主方向(即三个坐标轴方向)观察时,任一方向看到的小立方体排布都不存在相邻的“空洞”。 > > 这里,某一方向上观察到的“空洞”,是指沿该方向$N$个立方体叠成的、边长为$1$的正方形区域,当该区域内对应的$N$个小立方体没有一个被选中时,这个正方形就是一个“空洞”。两个“空洞”相邻,指的是它们在平面上共享一条边。 更严格地说,将分割后的每个小立方体与三元组 $(x_i,y_i,z_i)$ 对应,设 $S = \{(x_1,y_1,z_1), (x_2,y_2,z_2), \ldots, (x_m,y_m,z_m)\}$ 为所选立方体的三元组集合($1 \leq x_i, y_i, z_i \leq N$)。$m$ 为所选立方体的最小个数。$S$ 需要满足以下全部条件: - 对所有整数 $y, z, y', z'$($1 \leq y, z, y', z' \leq N,\,|y-y'|+|z-z'|=1$),存在某个 $x$($1 \leq x \leq N$),满足 $(x, y, z)\in S$ 或 $(x, y', z')\in S$。 - 对所有整数 $z, x, z', x'$($1 \leq z, x, z', x' \leq N,\,|z-z'|+|x-x'|=1$),存在某个 $y$($1 \leq y \leq N$),满足 $(x, y, z)\in S$ 或 $(x', y, z')\in S$。 - 对所有整数 $x, y, x', y'$($1 \leq x, y, x', y' \leq N,\,|x-x'|+|y-y'|=1$),存在某个 $z$($1 \leq z \leq N$),满足 $(x, y, z)\in S$ 或 $(x', y', z)\in S$。 在本题的范围内,满足这几个条件的选择方式一定存在。

输入格式

输入仅一行: > $N$

输出格式

请按如下格式输出答案: > $m\ x_1\ y_1\ z_1\ x_2\ y_2\ z_2\ \cdots\ x_m\ y_m\ z_m$ 如果存在多种可行方案,输出任意一种均视为正确。

说明/提示

### 样例解释 1 如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_pakencamp_2024_day1_k/e4f68a3f1b63616f6c39926e72e9e179c2399faa30453d01825790535aedabce.png) 从三个方向看,都不存在相邻的“空洞”。 ### 数据范围 - $1 \leq N \leq 1000$ - 输入均为整数。 由 ChatGPT 5 翻译