佩斯,27 26
-*QQ*4lfgsm^d2T*QQ^%2_UtQ2
在线尝试:Pyth编译器/执行器
我使用2Nx2N
网格并计算重叠的2x2
正方形。因为我已经知道半径,所以它要短一些N
。
实际上,我不计算重叠的正方形。我计算第二个象限的非重叠正方形,将数字乘以4,然后从中减去结果N*N
。
27种解决方案的说明:
-*QQ*4lfgsm^-Qd2T*QQ^t%2UQ2 implicit: Q = input()
t%2UQ generates the list [2, 4, 6, ..., Q]
^ 2 Cartesian product: [(2, 2), (2, 4), ..., (Q, Q)]
These are the coordinates of the right-down corners
of the 2x2 squares in the 2nd quadrant.
f Filter the coordinates T, for which:
gsm^-Qd2T*QQ dist-to-center >= Q
more detailed:
m T map each coordinate d of T to:
^-Qd2 (Q - d)^2
s add these values
g *QQ ... >= Q*Q
*4l take the length and multiply by 4
-*QQ Q*Q - ...
26种解决方案的说明:
我注意到我只使用一次坐标,并立即从中减去坐标Q
。为什么不简单地Q - coords
直接生成值呢?
这发生在中%2_UtQ
。仅比以前的解决方案大一个字符,并节省了2个字符,因为我不必减去-Q
。
N^2
。