由立方体定义知:立方体各边长相等。
由面心立方体性质知:只要确定了面心立方体的边长,就可以确定面心立方体中各点的位置。
结合题意,我们可以得到以下结论:
只要确定了按照面心立方体排列的粒子所形成的面心立方体的边长,就可以确定各粒子的位置。
因此,我们要求的就是面心立方体的边长。
设面心立方体的边长为 x,t = 3.0 / x,由题意可知 t 为整数。
设下图中 |OA| == 3,|OB| == 30,|OC| == 60。+ 表示颗粒,同一线段上两个 + 之间距离为 x。
B
C
.
.
.
.
.
.
+
+
|
/
+ +
|/
+--+--+--+--+....
O
A
观察可知线段 OA 上共有 t + 1 颗颗粒。
从而可知由线段 OA 与线段 OB 所确定的矩形区域内共有 (t + 1) * (10 * t + 1) 颗颗粒。
进而可知,由线段 OA,线段 OB 与线段 OC 所确定的长方体内共有这样的颗粒 (t + 1) * (10 * t + 1) * (20 * t + 1) 颗。
观察下面由线段 OA 与线段 OB 确定的矩形区域。
B
.
.
.
.
.
.
.
.
.
.
.
.
+---------+---------+---------+...
|
|
|
|
|
|
|
|
|
|
|
|
+---------+---------+---------+...
|
|
|
|
|
+ |
+
|
+
|
|
D |
|
|
+---------+---------+---------+...
O
A
观察可知由线段 OA,线段 OB 与线段 OC 所确定的长方体中有类似点 D 的颗粒 t * (10 * t) * (20 * t) 颗。
由线段 OA 与线段 OC 所确定的矩形区域和由线段 OB 与 线段 OC 所确定的矩形区域与上述相同。
由此可知由线段 OA,线段 OB 与线段 OC 所确定的长方体中共有类似点 D 的颗粒 t * (10 * t) * (20 * t) * 3颗。
因此,填充区域所能包含的颗粒的个数 n_p == (t + 1) * (10 * t + 1) * (20 * t + 1) + t * (10 * t) * (20 * t) * 3。
整理得 n_p == 800 * t^3 + 230 * t^2 + 31 * t + 1。
由题意知,50000 <= n_p <= 60000。
通过穷举知,n_p == 55005,t == 4。
由此可知 x == 4 / 3.0。
// 这里应该是 x == 3.0 / 4。粗心了又
至此,要求得各颗粒的位置就轻而易举了
[
本帖最后由 voidx 于 2011-6-11 00:02 编辑 ]