我是竞争编程的新手,我经常注意到,许多优秀的编码器的代码中都有以下四行(尤其是涉及数组的行):
int di[] = { 1, -1, 0, 0, 1, -1, 1, -1 };
int dj[] = { 0, 0, 1, -1, 1, -1, -1, 1 };
int diK[] = { -2, -2, -1, 1, 2, 2, 1, -1 };
int djK[] = { -1, 1, 2, 2, 1, -1, -2, -2 };
这到底意味着什么?技术的用途是什么?
这是一个令人惊讶的好问题。...可以对标题做些什么吗?
—
luser droog
因此,您没有想到要提到此代码来自国际象棋引擎吗?您也没有想到要看看自己如何使用这些值?
—
trojanfoe
“很多优秀的编码器都有这四行[...]”-我在这里挑剔,但是如果他们是优秀的编码器,那么他们的代码不会引起您怀疑“ wtf是那个构造吗?!”
—
utnapistim
@utnapistim编写绝大多数代码时,您是对的,但是在这里,您没有抓住重点。这种情况是该规则的合法例外。如果您正在为比赛编写代码并且在时间限制下,那么“肮脏”几乎总是比“干净可维护”更好。在这种情况下可读的你,现在真的是所有的事项。优秀的编码人员在这种情况下,即使他们的大多数常规代码都是高度可读和可维护的,也能很好地编写出难以维护的混乱。
—
李·李
d={0,1,0,-1,0}
这样做:物品对d[i], d[i+1]
给我四个基本方向。