Loading docs/misc/josephus.md +2 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ ## 问题描述 > n 个人标号 $0,1,\dots n-1$ 逆时针站一圈,从 $0$ 号开始,每一次从当前的人逆时针数 $k$ 个,然后让这个人出局。问最后剩下的人是谁。 > n 个人标号 $0,1,\cdots, n-1$ 。逆时针站一圈,从 $0$ 号开始,每一次从当前的人逆时针数 $k$ 个,然后让这个人出局。问最后剩下的人是谁。 这个经典的问题由约瑟夫于公元 1 世纪提出,尽管他当时只考虑了 $k=2$ 的情况。现在我们可以用许多高效的算法解决这个问题。 Loading @@ -12,7 +12,7 @@ ## 简单优化 寻找下一个人的过程可以用线段树优化。具体地,开一个 $0,1,\dots n-1$ 的线段树,然后记录区间内剩下的人的个数。寻找当前的人的位置以及之后的第 k 个人可以在线段树上二分做。 寻找下一个人的过程可以用线段树优化。具体地,开一个 $0,1,\cdots, n-1$ 的线段树,然后记录区间内剩下的人的个数。寻找当前的人的位置以及之后的第 k 个人可以在线段树上二分做。 ## 线性算法 Loading Loading
docs/misc/josephus.md +2 −2 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ ## 问题描述 > n 个人标号 $0,1,\dots n-1$ 逆时针站一圈,从 $0$ 号开始,每一次从当前的人逆时针数 $k$ 个,然后让这个人出局。问最后剩下的人是谁。 > n 个人标号 $0,1,\cdots, n-1$ 。逆时针站一圈,从 $0$ 号开始,每一次从当前的人逆时针数 $k$ 个,然后让这个人出局。问最后剩下的人是谁。 这个经典的问题由约瑟夫于公元 1 世纪提出,尽管他当时只考虑了 $k=2$ 的情况。现在我们可以用许多高效的算法解决这个问题。 Loading @@ -12,7 +12,7 @@ ## 简单优化 寻找下一个人的过程可以用线段树优化。具体地,开一个 $0,1,\dots n-1$ 的线段树,然后记录区间内剩下的人的个数。寻找当前的人的位置以及之后的第 k 个人可以在线段树上二分做。 寻找下一个人的过程可以用线段树优化。具体地,开一个 $0,1,\cdots, n-1$ 的线段树,然后记录区间内剩下的人的个数。寻找当前的人的位置以及之后的第 k 个人可以在线段树上二分做。 ## 线性算法 Loading