\(\alpha(n)\) ã \(\alpha(m, n)\) ã¨ããã®ãããã¾ãããunion-find ã®è¨ç®é解æã§åºã¦ããï¼ããããã»ã¼å®æ°ï¼ã¿ãããªé¢æ°ï¼ã ã¨æããã¦ããã¡ãªãã¤ã§ãã
ä¸åº¦ãåå¼·ããã¤ããã§ãããå®ã¯ãªã«ãããã£ã¦ããªãã£ãã®ã§ã¾ãããã¾ããï¼å¥ã«ãªã³ã¯å ã¯èªã¾ãªãã¦ãããã§ãï¼ãããªãé·ãã®ã§ãæãªã¨ãã«ã¡ãã£ã¨ãã¤ããã¤ã¾ãã§èªããããã«ãã¦ããããããããã§ãã
ããã£ã¦ããªãæ°ããã¦ãããã¨ï¼
- \(\alpha(n)\) ã¨ã¯ãªã«ã + ã©ããªæ§è³ªãæã¤ã
- Ackermann é¢æ° \(A_m(n)\) ã¨ã¯ãªã«ã
- \(\alpha(n)\) 㨠\(A_m(n)\) ã®é¢ä¿ã¯ã©ããªãã®ã
- \(\alpha(m, n)\) ã¨ã¯ãªã«ã + ã©ããªæ§è³ªãæã¤ã
- è¨ç®é解æã®æèã§ã\(\alpha(n)\) ã \(\alpha(m, n)\) ã¯ã©ãããéç¨ã§åºã¦ããã
ããããããããã®è§£æãç¨ã㦠decremental neighbor query ã \(\langle O(n), O(1)\rangle\) (amortized) ã§å¦çã§ãããã¼ã¿æ§é ãä½ããã®ã§ãããã®è©±ãæ¸ãã¾ããä½åº¦ãå¥ã§è¨åããããã¦ãã¾ããããã®ãã¼ã¿æ§é ã«ãã£ã¦ç·å½¢æéã§ãªãã©ã¤ã³ã§ LCA ãå¦çã§ãã¾ãã
ããããé ã追ã£ã¦æ¸ãã¦ããã¾ããç¹ã«ååã¯ãã天ä¸ãã«æãã¾ãã許ãã¦ãã ããã
- \(\alpha\) ã®æ§è³ªã«é¢ãã話
- \(\alpha\) ã®è¨ç®é解æã§ã®è©±
- Decremental neighbor query
- åèæç®
- ãã¤ã¼ãæ¯ãè¿ãã®ã³ã¼ãã¼
- ãã¾ã
- ããã
\(\alpha\) ã®æ§è³ªã«é¢ãã話
Ackermann é¢æ°ã®éé¢æ°ã¨ãã¦è¨åãããã¡ã§ãããããã§ã¯ Ackermann é¢æ°ã¯ä»ããã«å®ç¾©ãã¦ããã¾ã*1ãAckermann é¢æ°ã¨ã®é¢ä¿ã¯å¾ã§ç¤ºãã¾ãã
Inverse Ackermann hierarchy
ã¾ã㯠\(\alpha(n)\) ãå®ç¾©ããåã«ãinverse Ackermann hierarchy ã¨å¼ã°ãããã®ãå®ç¾©ãã¾ãã ããã¯ã\(\angled{\alpha_1(n), \alpha_2(n), \dots}\) ã¨ããé¢æ°ã®ï¼ç¡éï¼åã§ãåé¢æ°ã®å®ç¾©ã¯ä»¥ä¸ã§ãã
- \(\alpha_1(n) = \ceil{n/2}\) for \(n\ge 1\),
- \(\alpha_k(1) = 0\) for \(k\gt 1\),
- \(\alpha_k(n) = 1 + \alpha_k(\alpha_{k-1}(n))\) for \(k\gt 1, n\gt 1\).
- \(\alpha_k(n)\) ã¯ã\(\alpha_{k-1}\) ã \(n\) ã«é©ç¨ããã®ãç¹°ãè¿ã㦠\(1\) ã«ããããã®åæ°ã
\(n\) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | ... |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\(\alpha_1(n)\) | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 5 | ... | 8 | 8 | 9 | ... |
\(\alpha_2(n)\) | 0 | 1 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | ... | 4 | 4 | 5 | ... |
\(\alpha_3(n)\) | 0 | 1 | 2 | 2 | 3 | 3 | 3 | 3 | 3 | ... | 3 | 3 | 4 | ... |
ãã¨ãã°ã\(\alpha_2(n) = \ceil{\log_2(n)}\) ã¨ãªãã¾ããã¾ãã\(\alpha_3(n)\) ã¯åå¾©å¯¾æ° (iterated logarithm) ã¨å¼ã°ããé¢æ°ã§ã\(\log^{\star}(n)\) ã¨æ¸ããã¾ãã ããä¸è¬ã«ã\(f\) ã \(n\) ã«é©ç¨ããã®ãç¹°ãè¿ã㦠\(1\) ã«ããããã®åæ°ã表ãé¢æ°ã \(f^{\star}(n)\) ã¨æ¸ããããªã®ã§ã\(\alpha_k(n) = {\alpha_{k-1}}^{\star}(n)\) ã¨æ¸ãããã§ãã
äºå¤æ°ãã¼ã¸ã§ã³ã§ããã¨ããã® \(\alpha(m, n)\) ããã£ã¨ä¸ã§å®ç¾©ãããã®ã§ãããããã¨ã¯å¥ç©ãªã®ã§æ³¨æãã¦ãã ããã
ãã¦ããããã¦å®ç¾©ããã \(\alpha_k(n)\) ãæã¤æ§è³ªãæãã¦ããã¾ãã
Claim 1: ä»»æã® \(k\ge 1\) ã«å¯¾ãã¦ä»¥ä¸ãæãç«ã¤ã
- \(\alpha_k(2) = 1\),
- \(\alpha_k(3) = \alpha_k(4) = 2\),
- \(\alpha_k(5) = \alpha_k(6) = 3\).
Proof: ã¯ãªãã¯ãã¦å±éï¼ä»¥ä¸åæ§ï¼
\(k\) ã«é¢ãã帰ç´æ³ã§ç¤ºãã
\(\alpha_1(2) = 1\) ã¯æããã \(\alpha_k(2) = 1\) ã¨ããã¨ãå®ç¾©ãã \[ \begin{aligned} \alpha_{k+1}(2) &= 1 + \alpha_{k+1}(\alpha_k(2)) \\ &= 1 + \alpha_{k+1}(1) \\ &= 1 + 0 \\ &= 1. \quad\qed \end{aligned} \]
\(\alpha_k(3)\) ãã \(\alpha_k(6)\) ã«ã¤ãã¦ãåæ§ã«ç¤ºããã\(\qed\)
Claim 2: ä»»æã® \(k\ge 1\) ã«å¯¾ãã\(n\ge 4\implies \alpha_k(n) \le n-2\)ã
Proof
\( (k, n)\) ã«é¢ãã帰ç´æ³ã§ç¤ºãã \(k = 1\) ã®ã¨ãã¯æãããªã®ã§ãä»¥ä¸ \(k\ge 2\) ã¨ããã\(4\le n\le 6\) ã«ã¤ãã¦ã¯ Claim 1 ããæãç«ã¤ã
\( (k, n)\) ããè¾æ¸é ã§å°ãããã®ã«ã¤ãã¦ã¯æãç«ã¤ã¨ããã¨ã \[ \begin{aligned} \alpha_k(n) &= 1 + \alpha_k(\alpha_{k-1}(n)) \\ &\le 1 + \alpha_k(n-2) \\ &\le 1 + ( (n-2)-2) \\ &\lt n-2. \quad\qed \end{aligned} \]
Claim 3: ä»»æã® \( (n, k)\) ã«ã¤ã㦠\(\alpha_{k+1}(n)\le\alpha_k(n)\) ãæãç«ã¤ã
ããã«ã\(k\ge 2\) ã®ã¨ã \(\alpha_k(n)\ge 4 \iff \alpha_{k+1}\lt \alpha_k(n)\)ã
Proof
\(\alpha_k(n)\le 3\) ã®ã¨ã㯠Claim 1 ã¨åæ§ã«ã㦠\(\alpha_{k+1}(n)\le \alpha_k(n)\) ã示ããã
\(\alpha_k(n)\ge 4\) ã®ã¨ããClaim 2 ãã \[ \begin{aligned} \alpha_{k+1}(n) &= 1 + \alpha_{k+1}(\alpha_k(n)) \\ &= 1 + \alpha_k(n) - 2 \\ &\lt \alpha_k(n). \quad\qed \end{aligned} \]
Note: \(\alpha_2(1) = 0 \lt 1 = \alpha_1(1)\) ãªã®ã§ã\(k=1\) ã§ã¯ \(\Longleftarrow\) ãæãç«ããªãããã
Claim 4: \(k\ge 2 \implies \alpha_k(n) = o(n)\)*2ã
Proof
\(\alpha_2(n) = \ceil{\log_2(n)} = o(n)\) 㨠\(\alpha_{k+1}(n)\le \alpha_k(n)\) ããå¾ãã\(\qed\)
Claim 5: \(k\ge 1 \implies \alpha_{k+1}(n) = o(\alpha_k(n))\)ã
ããã«ãä»»æã®æ£æ´æ° \(r=O(1)\) ã«å¯¾ã㦠\(\alpha_{k+1}(n) = o({\alpha_k}^{(r)}(n))\)*3ã
Proof
Claim 4 ããã \[ \begin{aligned} \alpha_{k+1}(n) &= 1 + \alpha_{k+1}(\alpha_k(n)) \\ &= o(\alpha_k(n)). \quad\qed \end{aligned} \]
\(r\) ã«ã¤ãã¦ã \[ \begin{aligned} \alpha_{k+1}(n) &= r + \alpha_{k+1}({\alpha_k}^{(r)}(n)) \\ &= o({\alpha_k}^{(r)}(n)). \quad\qed \end{aligned} \]
\(\alpha(n)\) ã®è©±
æ¬é¡ã²ã¨ã¤ãã§ã*4ã
Claim 1, 3 ãããä»»æã® \(n\ge 5\) ã«å¯¾ã㦠\[ \alpha_1(n), \alpha_2(n), \alpha_3(n), \dots \] ã§å®ç¾©ãããåã¯ãæåã¯ç義å調æ¸å°ãããã®å¾ \(3, 3, 3, \dots\) ã¨ãªãã¾ãã ãã¨ãã°ã\(n = 9876!\) ã¨ããã¨ã \[ 3.06\times 10^{35163}, 116812, 6, 4, 3, 3, 3, \dots \] ã¨ãªãã¾ã*5ã ããã§ã\(\alpha(n)\) ããä½é ç®ã§ \(3\) 以ä¸ã«ãªããï¼ãã¨ããã®ãè¿ãé¢æ°ã¨ãã¦å®ç¾©ãã¾ãã \[ \alpha(n) \coloneqq \min\,\{k\mid \alpha_k(n)\le 3\}. \] ä¸è¨ã®ä¾ã§ããã°ã\(\alpha(9876!) = 5\) ã¨ãªãã¾ãã
ããã¤ãå¤ã示ãã¦ããã¾ãã
\(i\) | \(\alpha(j) = i\) ãªãæå°ã® \(j\) |
---|---|
1 | 1 |
2 | 7 |
3 | 9 |
4 | 17 |
5 | 65537 |
ãã¦ããããã¦å®ç¾©ãã \(\alpha(n)\) ãæã¤æ§è³ªãæãã¦ããã¾ãã
Claim 6: ä»»æã®å®æ° \(k\) ã«å¯¾ãã¦ã\(\alpha(n) = o(\alpha_k(n))\)ã
Proof
\(m = \alpha_{k+1}(n)\) ã¨ããããã®ã¨ããå \[ \alpha_{k+1}(n), \alpha_{k+2}(n), \alpha_{k+3}(n), \dots \] ãèããã¨ãClaim 3 ãã \(\alpha_{k+m-2}(n) \le 3\) ã¨ãªãã ãã£ã¦ã \[ \begin{aligned} \alpha(n) &\le k+m-2 \\ &= k+\alpha_{k+1}(n)-2 \\ &= o(\alpha_k(n)). \quad\qed \end{aligned} \]
Ackermann é¢æ°ã¨ã®é¢ä¿
ãã¦ã\(\alpha(n)\) ãå®ç¾©ãã¦ããã¤ãæ§è³ªãããã£ãã®ã§ããunion-find ã®è¨ç®é解æã§åºã¦ããï¼ããããã»ã¼å®æ°ï¼ã¿ãããªé¢æ°ï¼ãã®ãããªãµãã£ã¨ããèªèããã¯æé·ããæ°ããã¾ãã ããã¯ããã¨ãã¦ããAckermann é¢æ°ã®éé¢æ°ããªã©ã¨å¼ã°ãã¦ããã®ã妥å½ãªã®ãï¼ã¨ããã®ã¯ããããã£ã¦ãã¾ããã
ããã§ãã¾ã Ackermann é¢æ° \(A_m(n)\) ãå®ç¾©ãã¾ãã
- \(A_0(n) = n + 1\) for \(n\ge 0\),
- \(A_m(0) = A_{m-1}(1)\) for \(m\gt 0\),
- \(A_m(n) = A_{m-1}(A_m(n-1))\) for \(m\gt 0, n\gt 0\).
- \(A_m(n) = A_{m-1}^{(n+1)}(1)\) ã¨ãªãã¾ãã
ãããããã以ä¸ã®ãã¨ããããã¾ãã
- \(A_1(n) = n + 2\),
- \(A_2(n) = 2n+3 = 2(n+3) - 3\),
- \(A_3(n) = 2^{n+3}-3\).
+3 ã¨ã -3 ã¨ããã¡ãã£ã¨å«ãªæãããã¾ããã諦ãã¾ãã ãã¦ã次ã®ãã¨ãè¨ãã¾ãã
Claim 7: \(m\ge 2 \implies \alpha_{m-1}(A_m(n)+3) = n+3\)ã
Proof
\( (m, n)\) ã«é¢ãã帰ç´æ³ã§ç¤ºãã
ã¾ãã\(m = 2\) ã®ã¨ã \[ \begin{aligned} \alpha_1(A_2(n)+3) &= \alpha_1( (2\cdot(n+3)-3) +3) \\ &= \alpha_1(2\cdot(n+3)) \\ &= n+3 \end{aligned} \] ããæãç«ã¤ã
次ã«ãåºå®ãã \(m\) æªæºã§ã¯æãç«ã¤ã¨ãã¦ã\(n = 0\) ã®ã¨ã \[ \begin{aligned} \alpha_{m-1}(A_m(0)+3) &= \alpha_{m-1}(A_{m-1}(1)+3) \\ &= 1 + \alpha_{m-1}(\alpha_{m-2}(A_{m-1}(1)+3)) \\ &= 1 + \alpha_{m-1}(1+3) \\ &= 1 + \alpha_{m-1}(4) \\ &= 3 \end{aligned} \] ããæãç«ã¤ãClaim 1 ãã \(\alpha_{m-1}(4) = 2\) ã«æ³¨æããã
\( (m, n)\) ããè¾æ¸é ã§å°ãããã®ã«ã¤ãã¦æãç«ã¤ã¨ããã¨ã \[ \begin{aligned} \alpha_{m-1}(A_m(n)+3) &= \alpha_{m-1}(A_{m-1}(A_m(n-1))+3) \\ &= 1 + \alpha_{m-1}(\alpha_{m-2}(A_{m-1}(A_m(n-1))+3)) \\ &= 1 + \alpha_{m-1}(A_m(n-1)+3) \\ &= 1 + (n-1) + 3 \\ &= n + 3. \quad\qed \end{aligned} \]
Claim 8: \(n\ge 2\implies\alpha_{n-1}(n+3) = 3\)ã
Proof
\(2\le n \le 3\) ã®ã¨ããClaim 1 ãã \(\alpha_1(5) = \alpha_2(6) = 3\)ã
\(n\gt 3\) ã¨ãã\(\alpha_1(n+3) = \ceil{(n+3)/2}\) 㨠Claim 3 ããã \[ \begin{aligned} \alpha_{n-1}(n+3) &\le \max\,\{3, \alpha_1(n+3) - (n-3)\} \\ &= 3. \quad\qed \end{aligned} \]
Claim 9: \(\alpha(A_1(1)+3) = 1\) ããã³ \(n\ge 2\implies \alpha(A_n(n)+3) = n+1\)ã
Proof
\(A_1(1) = 3\) ãã \(\alpha(A_1(1)+3) = 1\)ã
ä»¥ä¸ \(n\ge 2\) ã¨ããã Claim 1, 7, 8 ããã \[ \begin{aligned} \alpha_{n-1}^{(2)}(A_n(n)+3) &= \alpha_{n-1}(n+3) = 3; \\ \alpha_{n-1}^{(3)}(A_n(n)+3) &= \alpha_{n-1}(3) = 2; \\ \alpha_{n-1}^{(4)}(A_n(n)+3) &= \alpha_{n-1}(2) = 1. \end{aligned} \] ãã£ã¦ãå®ç¾©ãã \(\alpha_n(A_n(n)+3) = 4\) ã¨ãããã \[ \begin{aligned} \alpha_{n+1}(A_n(n)+3) &= 1 + \alpha_{n+1}(\alpha_n(A_n(n)+3)) \\ &= 1 + \alpha_{n+1}(4); \\ &= 1 + 2 = 3; \\ \alpha(A_n(n)+3) &= n+1. \quad\qed \end{aligned} \]
ãããã¦ãï¼ããã ãå®æ°ã®å·®ãå³å¯ã«ã¯ç¤ºãã¦ããªããã®ã®ï¼\(\alpha(n)\) 㯠\(f(n) = A_n(n)\) ã®éé¢æ°ãããã®ãã®ã§ãããã¨ããããã¾ããã
\(A_m(\alpha_{m-1}(n))\) ã \(A_n(\alpha_n(n))\) ã¿ãããªã®ã«ã¤ãã¦ã¯å²æãã¾ã*6ã
\(\alpha(m, n)\) ã®è©±
天ä¸ãæãå¼·ãæ°ããã¾ããã次ã®ããã«å®ç¾©ãã¾ãã \[ \alpha(m, n) \coloneqq \min\,\{k\mid \alpha_k(n)\le 3 + m/n\}. \]
Claim 10: \(\alpha(m, n) \le \alpha(n)\)ã
Proof
\(\alpha_k(n)\le 3 \implies \alpha_k(n)\le 3+m/n\) ããå¾ãã\(\qed\)
Claim 11: \(\alpha(n\cdot\alpha_i(n), n) \le i\)ãç¹ã«ã\(\alpha(n\ceil{\log_2(n)}, n) \le 2\)ã
Proof
\[ \alpha_i(n)\le 3 + (n\cdot\alpha_i(n))/n) = 3 + \alpha_i(n) \] ãèªæã«æãç«ã¤ãã¨ããå¾ããå¾è ã¯ã\(i = 2\) ã®å ´åã\(\qed\)
注ææ¸ã
\(\alpha(n)\) ã¯ã\(A\) ã使ããã«å®ç¾©ããå ´å㨠\(A\) ã使ã£ã¦å®ç¾©ããå ´åãããã¾ãã \(A\) ã使ãå ´å㯠\(\alpha(n) = \min\,\{k\mid A_k(1)\ge n\}\) ã®ãããªæãã®å½¢ã§å®ç¾©ããããã¾ãããä¸èº«ã®å³è¾ºã \(n\) ã§ã¯ãªã \(\log_2(n)\) ã¨ãã ã£ããäºç¨®ãããã¾ãããããã¯ã\(A\) ã®å®ç¾©èªä½ã«ãäºç¨®ãããã¾ãã ã¾ããinverse Ackermann hierarchy ã§å®ç¾©ããå ´åãã\(\alpha_1(n)\) ã \(\floor{n/2}\) ã ã£ãã \(\ceil{n/2}\) ã ã£ããäºç¨®ãããã¾ãã åå®ç¾©ã§é«ã å®æ°ã®å·®ã¯ãã£ããã¯ãã¾ã*7ã
æèã«åããã¦é½åããå®ç¾©ãã¦ããªã¼ãã¼ã¯åããªã®ã§ okï¼ã¿ãããªæè¦ã§ãã£ã¡ãã£ã¦ããæ°ããã¾ã*8ã
\(\alpha\) ã®è¨ç®é解æã§ã®è©±
ããç¨åº¦ \(\alpha_k(n)\) ã \(\alpha(n)\) ã¨ä»²ããã«ãªã£ãã¨æãã®ã§ãããããã¯è¨ç®é解æã®æèã§ã©ãåºã¦ãããã¨ããã®ãæ¸ãã¦ããã¾ãã \(A_m(n)\) ã¯ãã御役御å ã§ããããããã
ãã®è¾ºã¯ãåèæç®ã«è¼ããã¹ã©ã¤ããèªãã¨ããããããããããã¾ããã æ°å¼ã®é¨åã ãèªã¿ãã人ã¯æ°å¼ã®é¨åã ãæ¢ãã¦èªãã§ãããããããã¾ããã
\(\alpha(n)\) ãåºã¦ãããã¼ã¿æ§é
ã¢ãã¤ãã®åºéç©ãçãããã¼ã¿æ§é ãèãã¾ã*9ãæ´æ°ã¯ãªããã®ã¨ãã¦ããã§ãã
ã¾ãããåå¦çããªãã¹ãå°ãªãè¡ãã¤ã¤ãåã¯ã¨ãªã§ã¯ 1 åã®ã¢ãã¤ãæ¼ç®ã§æ¸ãããã«ããããã¨ããã®ãèãã¾ãã
è¦ç´ æ°ã 1 ã®ã¨ãã¯èªæãªã®ã§ã2 以ä¸ã¨ãã¾ãã ä¸éã§ååã«åãã¦ãååã¯ããã®è¦ç´ ããä¸éã¾ã§ã®ç´¯ç©ã¢ãã¤ãç©ããå¾åã¯ãä¸éãããã®è¦ç´ ã¾ã§ã®ç´¯ç©ã¢ãã¤ãç©ããæ±ãã¦ããã¾ãã ããã«ãããä¸éãã¾ããåºéã®ã¯ã¨ãªã«ã¤ãã¦ã¯ãããç¨ã㦠1 åã®æ¼ç®ã§çãããã¾ãã ä¸éãã¾ãããªãåºéã®ããã«ãå帰çã«åã å¦çãã¾ã*10ã
å段ã§ã®ã¢ãã¤ãæ¼ç®ã®åæ°ã¯ããã ã \(n\) ã§ã段æ°ã¯ \( (n/2)^{\star} = \log_2(n)\) ãªã®ã§ãåå¦ç㯠\(n\log_2(n)\) åç¨åº¦ã§ãã
ãé·ã \(n\) ã®é åã®ã¢ãã¤ãåºéç©ã«å¯¾ããåã¯ã¨ãªã \(i\) åã®ã¢ãã¤ãæ¼ç®ã§æ¸ã¾ããããã®åå¦çã®æå°åæ°ãã \(S_i(n)\) ã¨æ¸ããã¨ã«ããã¨ã\(S_1(n) \le n\log_2(n)\) ã¨æ¸ãã¾ãã
次ã«ããã®ãã¼ã¿æ§é ãç¨ãã¦ãã¯ã¨ãªããã 3 åã§æ¸ã¾ãããã¼ã¿æ§é ãèãã¾ãã
- é
åã \(\log_2(n)\) åãã¤ã®ããã㯠\(n/\log_2(n)\) åã«åãã
- åãããã¯ã«ã¤ãã¦ãåããã»å¾ãããã®ç´¯ç©ã¢ãã¤ãç©ãæ±ãã¦ãã
- é«ã \(2n\) å
- ãããã¯å
¨ä½ã®ã¢ãã¤ãç©ã 1 è¦ç´ ã¨è¦ãã¨ãã®ãåºéã¯ã¨ãªã®åå¦çããã
- é åãµã¤ãºã \(n/\log_2(n)\) ã¨ãªã
- é«ã \(S_1(n/\log_2(n)) \le n\) å
- ãããã¯å
ã®ã¯ã¨ãªã 3 åã§æ¸ã¾ããããããã«ããã
- å帰çã«è¡ãã\(n/\log(n)\cdot S(\log_2(n))\) å
å帰ã®æ®µæ°ã¯ \(\log_2^{\star}(n)\) ã¨ãªãã\(S_3(n)\le 3n\log_2^{\star}(n)\) ã¨ãªãã¾ãã
åæ§ã®æç¶ããç¹°ãè¿ãã\(S_{2k-1}(n)\le (2k-1)\cdot n\cdot f(n)\) ãéæãããã¼ã¿æ§é ãç¨ã㦠\(S_{2k+1}(n)\le (2k+1)\cdot n\cdot f^{\star}(n)\) ãéæã§ãã¾ããããªãã¡ã以ä¸ã®ããã«ãªãã¾ãã \[ S_{2k+1}(n) = (2k+1)\cdot n\cdot\log\overbrace{{}_{\!2}^{\star\star\,\dots\,\star}}^{k\text{ times}}(n). \] ãã® \(\log^{\star\star\,\dots\,\star}\) ã®é¨åãå®æ°ã«ããã«ã¯ \(k\) ããããã«ããã°ããã§ããããã¨ããã®ãèããã¨ã次ã®ãããªé¢æ°ã欲ãããªãã¾ãã \[ \alpha(n) = \min\,\{k\mid \log\overbrace{{}_{\!2}^{\star\star\,\dots\,\star}}^{k\text{ times}}(n)\le 2\}. \] åè¿°ã® \(\alpha\) ã¨éã£ã¦ \(\ceil{\;}\) ããã¦ããªãã£ããããé¢ä¿ã§å®æ°é¨åãéã£ãããã¾ãããåããããªãã®ã§ããããããéç¨ã§åºã¦ããããã§ããã
ããªãã¡ã\(S_{2\alpha(n)+1} \le (2\cdot\alpha(n)+1)\cdot n = O(n\cdot\alpha(n))\) ã¨ãªãã¾ã*11ã
\(\alpha(m, n)\) ãåºã¦ãããã¼ã¿æ§é
ã¿ããªå¤§å¥½ã union-findã
ã¡ãã£ã¨ç²ãã¡ãã£ãã®ã§ãå°åºã¯æãã«ãã¦æ°å¼ã ãæ¸ãã¾ãã å³ã詳細ãªã©ãå¿ è¦ãªäººã¯ãåãããªã³ã¯å ã®ã¹ã©ã¤ããè¦ã¦ãã ããã
ãé ç¹æ° \(n\) ãã¤ã©ã³ã¯ã®æå¤§å¤ \(r\) ã® rank forest ã«å¯¾ãã¦æä½ãä»»æã« \(m\) åè¡ãã¨ãã®æ大ã³ã¹ããã \(f(m, n, r)\) ã¨å®ç¾©ãã¾ãã
ãã¦ã \[ f(m, n, r) \le k\cdot m+2n\cdot g(r) \implies f(m, n, r) \le (k+1)\cdot m+2n\cdot g^{\diamond}(r) % ({\ceil{\log_2}}\circ g)^{\star}(r) \] ãè¨ãããããã§ããããã§ã\(g^{\diamond} = ({\ceil{\log_2}}\circ g)^{\star}\) ã§ãããããã¯æ¬¡ã®ããã«æ¸ãã¾ãã \[ g^{\diamond}(r) = \begin{cases} 0, & \text{if }r\le 1; \\ 1 + g^{\diamond}(\ceil{\log_2(g(r))}), & \text{otherwise}. \end{cases} \] \(m\) å´ã®é ãã¡ãã£ã¨æªãã㦠\(n\) å´ã®é ããã¡ãããããã¿ãããªã¤ã¡ã¼ã¸ã ã¨æãã¾ãã
èªæãªä¸çã¨ã㦠\(f(m, n, r) \le (r-1)\cdot n\) ãããããã*12ãã¨ããã\(g_0(r) = \ceil{(r-1)/2}\) ã¨ãã¾ã*13ãã¾ã \(r\le\floor{\log_2(n)}\) ãè¸ã¾ãã¦ã\(n\) å´ã®é ãå®æ°ã«ããã«ã¯ï¼ãã¨ããã®ãèããã¨ã次ã®ããã«ãªãã¾ãã \[ \alpha(n) = \min\,\{k\mid g\,\overbrace{{}_{\!0}^{\diamond\diamond\,\dots\,\diamond}}^{k\text{ times}}(\floor{\log_2(n)})\le 2\}. \] ãããã¯ãã\(n\) å´ã®é ã \(O(m)\) ã«ããã«ã¯ï¼ãã¨ããã®ãèããã¨ã次ã®ããã«ãªãã¾ã*14ã \[ \alpha(m, n) = \min\,\{k\mid g\,\overbrace{{}_{\!0}^{\diamond\diamond\,\dots\,\diamond}}^{k\text{ times}}(\floor{\log_2(n)})\le 2+m/n\}. \] ããããã°ã \[ \begin{aligned} f(m, n, r) &\le \alpha(m, n)\cdot m+2n\cdot (2+m/n) \\ &\le \alpha(m, n)\cdot m + 4n+2m \end{aligned} \] ã¨ãªããæä½ã \(m\) åãªã®ã§ãæä½ 1 åããã \(O(\alpha(m, n))\) ã¨ãªãã¾ã*15ã
ãã¡ããåè¿°ã® \(\alpha(m, n)\) ã¨ã¯è¥å¹²éãã¾ããã大ããå½±é¿ã§ã¯ãªãã§ãããã\(\alpha_k = {\alpha_{k-1}}^{\star}\) ã§å®ç¾©ãããã®ã¨ \(\alpha_k = {\alpha_{k-1}}^{\diamond}\) ã§å®ç¾©ãããã®ã§ãªã¼ãã¼ãå¤ãããã¯èãã¦ãã¾ããã\(\ceil{\log{}\circ}\) ãã¤ããç¨åº¦ã§ã¯ \(\alpha\) ã«å½±é¿ããªãã®ã§ã¯ãªããã¨ããæ°ããã¦ãã¾ããClaim 5 ãããã使ãã¨ããããããã¾ããã
Decremental neighbor query
ãã¦ãå¾åã§ãããã³ã¡ããã¯ç²ãã¦ãã¾ãããè¨äºãåããã¹ãã ã£ãããããã¾ããã
åé¡è¨å®
- \(A \gets \{0, 1, \dots, n-1\}\) ã§åæåã
- ä¸ãããã \(i\) ã«å¯¾ã㦠\(A \gets A \setminus \{i\}\) ã§æ´æ°ã
- ä¸ãããã \(i\) ã«å¯¾ã㦠\(\min\,\{j\in A\mid j\ge i\}\) ãåºåã
- ä¸ãããã \(i\) ã«å¯¾ã㦠\(\max\,\{j\in A\mid j\le i\}\) ãåºåã
- Note: \(i\in A\) ã¨ã¯éããªãã
å¾è äºã¤ (successors query, predecessor query) ãåãã㦠neighbor query ã¨å¼ã³ã¾ãã è¦ç´ ãæ¸ãã ããªã®ã§ decremental ã§ããåæåã¯ä»»æã® \(S\subseteq \{0, 1, \dots, n-1\}\) ãä¸ãã¦ãããã§ãã
解æ³
ç¨æè¢å çãããã¨ã*16ã
word size \(w \ge \log_2(n)\) ã§èãã¾ãã é·ã \(n/\log_2(n)\) ã®é åãåããåè¦ç´ 㯠\(\log_2(n)\) bits ã§ãã neighbor query ã®çããã\(i\) ãå«ãè¦ç´ ã¨åãè¦ç´ ã«ããã¨ãã¯ã\(O(1)\)-time MSB ããããæ¼ç®ãªã©ãç¨ãã¦å®æ°æéã§ã§ãã¾ã*17ã
ããã§ãªãã¨ãã®ãã¨èãã¾ããé£ãåãè¦ç´ ã«å¯¾ãã¦ããããã®è¦ç´ ã® bit ããã¹ã¦ 0 ã«ãªã£ãã¨ããunion-find ã§ããããã¤ãªãã¾ãã æ ¹ã管çããã®ã¨åæ§ã«ãã¦ãããã®é£çµæåï¼åºéï¼ã®æå·¦ã¯ã©ããï¼ããæå³ã¯ã©ããï¼ãã¨ããã®ã管çãã¦ããã¾ãã ãã®ä½ç½®ã union-find ã§æ±ããå¾ã¯ãä¸è¨åæ§ã«è¦ç´ å 㧠neighbor query ãå®çµããã®ã§ãå®æ°æéã§çãããã¾ãã
ãã¦ãunion-find ã®è¨ç®éã«ã¤ãã¦èãã¾ãã ãã® union-find ã®è¦ç´ æ°ã¯ \(n/\log(n)\) ãªã®ã§ã\(n \ge n/\log(n)\cdot \log(n/\log(n))\) åã¯ã¨ãªãããã¨ä¸åããã \(\alpha(n, n/\log(n)) \le 2 = O(1)\) æéã§ãã \(n\) åæä½ãããã¨ã \(O(n)\) æéã«ãªãã®ã§ã\(n\) åæä½ãããåã®ã³ã¹ãã«é¢ãã¦ã¯åæåã®ã³ã¹ãã«ã§ãæ¼ãã¤ãã¦ããã°ããã§ãã
ããã«ããã\(\angled{O(n), O(1)}\) (amortized) 㧠decremental neighbor query ã解ãããã¨ã«ãªãã¾ãã
ããã使ã£ã¦è§£ããåé¡ãã¡ï¼
åèæç®
- Gabriel Nivasch, Inverse Ackermann without pain
- ååã§ç¤ºãã Claim ãã¡ãè¼ã£ã¦ããè¨äº
- Raimund Seidel, Understanding the Inverse Ackermann Function
- \(\alpha(n)\) ã \(\alpha(m, n)\) ãåºã¦ãããã¼ã¿æ§é ã®è§£æã詳ããè¼ã£ã¦ããã¹ã©ã¤ã
- 37zigen ããã®è¨äº
- kopricky ããã®è¨äº
- monkukui ã®ã¹ã©ã¤ã
- ç¨æè¢å çã®ãã¤ã¼ã
ããããã°ãå ãã¤æç¹ã§ã®ãã³ã¡ããã¯ãé åã§ï¼dancing links ãããã¨ãã¿ããã«ï¼é£çµãªã¹ããæã£ã¦ããã®ã§ãneighbor query ã«ã¯çãããã¾ããã§ããã
ãã£ã¡ã¯è«æãã¡ã§ãã
- Tarjan, Robert Endre. "Efficiency of a good but not linear set union algorithm." Journal of the ACM (JACM) 22, no. 2 (1975): 215â225.
- union-find ã®è¨ç®é解æã®å è«æ
- Gabow, Harold N., Zvi Galil, Thomas Spencer, and Robert E. Tarjan. "Efficient algorithms for finding minimum spanning trees in undirected and directed graphs." Combinatorica 6, no. 2 (1986): 109â122.
- \(\beta(m, n) = \min\,\{i\mid\log^{(i)}(n)\le m/n\}\) ã§å®ç¾©ãããé¢æ°ãåºã¦ãã
ãã¤ã¼ãæ¯ãè¿ãã®ã³ã¼ãã¼
ãããªãã¤ã¼ãããã£ããã§ãã®è¨äºãæ¸ããã¨ã«ãªã£ããããã§ããä¿¡ãããã¾ããã
ããè³ãå§ããããµã³ã¿ãããªã©ã¯ãå®ç©ãè¦ãªãã¨å®å¨ãä¿¡ããããªãã¨ãã人ããã
— ãã³ã¡ãã (@rsk0315_h4x) 2022å¹´4æ30æ¥
ãµã³ã¿ããã®å¸½åã被ã£ããµã³ã¿ãã以å¤ã®äººããµã³ã¿ããã®åå¨ãèªãã¦ãªã人çã«ã¯æ®éã«å¸½åã被ã£ã人ããã
— ãã³ã¡ãã (@rsk0315_h4x) 2022å¹´4æ30æ¥
ãµã³ã¿ããã®å¸½åã¯ãµã³ã¿ããã®åå¨ãä»®å®ããªãã¦ãç¬ç«ããæ¦å¿µã¨ãã¦ããã®ãï¼ Ackermann é¢æ°ãå®ç¾©ããã«ç´æ¥ Ackermann é¢æ°ã®éé¢æ°ãå®ç¾©ãããã¤ã¿ãã
— ãã³ã¡ãã (@rsk0315_h4x) 2022å¹´4æ30æ¥
ããµã³ã¿ããã®ãã¤ã¼ããããã¨æã£ãã α(m, n) ã®ãåå¼·ããã¦ããããªããï¼ãããã³ã¡ããã¬ã¡ã®ã¹ã¼ãããã
— ãã³ã¡ãã (@rsk0315_h4x) 2022å¹´4æ30æ¥
ããããã°ã\(\arcsin\) ãå ã«å®ç¾©ãã¦ããã®éé¢æ°ã¨ã㦠\(\sin\) ãå®ç¾©ãã話ããã£ããããªæ°ããã¾ãã
ããã¯å¥ä»¶ã§ãããããã¯ããã§é¢ç½ãã§ãã
Ackermann é¢æ°ã¯é常ã«å¤§ãããªãã®ã§ãA(m, n) mod 998244353 ãæ±ãã¦ãã ãã
— ãã³ã¡ãã (@rsk0315_h4x) 2022å¹´4æ30æ¥
帰ç´æ³ã§è©°ã¾ã£ã¦ããã¨ãã®ãã¤ã¼ãã§ãã
帰ç´æ³ããã¾ãåããªããªã£ã¦ãããã ãã©ãæ²¹ã¨ãå·®ããæ¹ãããããª
— ãã³ã¡ãã (@rsk0315_h4x) 2022å¹´5æ4æ¥
ãã¾ã
ããã§ã¯è¨äºä¸ã§æåã® \(\alpha_k(n)\) ã \(\alpha(n)\) ã«é¢ããå®ç¾©ãæ¡ç¨ãããã®ã¨ãã¦ãClaim ãã¡ãããã¤ãæ¸ãã¾ããããã¾ãè©°ãã¦ã¾ããã
Claim 12: \(\alpha_k(n+1) - \alpha_k(n) \le 1\)ã
Proof
\( (k, n)\) ã®å¸°ç´æ³ã§ç¤ºãã
\(k = 1\) ããã³ \(\alpha_k(n)\le 3\) ã«ã¤ãã¦ã¯æãç«ã¤ã \( (k, n)\) æªæºã«ã¤ãã¦æãç«ã¤ã¨ããã¨ã \[ \begin{aligned} \alpha_k(n+1) - \alpha_k(n) &= (1 + \alpha_k(\alpha_{k-1}(n+1))) - (1 + \alpha_k(\alpha_{k-1}(n))) \\ &= \alpha_k(\alpha_{k-1}(n+1)) - \alpha_k(\alpha_{k-1}(n)) \\ &\le \alpha_k(\alpha_{k-1}(n)+1) - \alpha_k(\alpha_{k-1}(n)). \end{aligned} \] \(\alpha_{k-1}(n) = 3\) ã§ããã° \(\alpha_k(4)-\alpha_k(3)=0\le 1\) ããæãç«ã¤ã ããã§ãªãã¨ããClaim 3 ãã \(n\lt\alpha_{k-1}(n)\) ãªã®ã§ã帰ç´æ³ã®ä»®å®ããæãç«ã¤ã\(\qed\)
\(\alpha_k(n+\bullet)-\alpha_k(n)\le 1\) ã® \(\bullet\) ã®é¨åããã£ã¨å¤§ããã§ããï¼ ç«¯æ°ã¯é©å½ã ãã© \(A_k(2)-A_k(1)\) ããªãããããªæãã«ã
Claim 13: éè² æ´æ° \(r\) ã«å¯¾ã㦠\(\alpha_{k+1}(n+r)-\alpha_{k+1}(n) \le \alpha_k(n+r)-\alpha_k(n)\)ã
Proof
\[ \alpha_{k+1}(n+r)-\alpha_k(n+r) \le \alpha_{k+1}(n)-\alpha_k(n) \] ããã\(f_k(n) = \alpha_{k+1}(n) - \alpha_k(n)\) ã \(n\) ã«å¯¾ãã¦å調æ¸å°ã§ãããã¨ã示ãã \[ \begin{aligned} f_k(n) &= \alpha_{k+1}(n) - \alpha_k(n) \\ &= 1 + \alpha_{k+1}(\alpha_k(n)) - \alpha_k(n). \end{aligned} \] \(m = \alpha_k(n)\) ã¨ããã¨ãClaim 12ï¼ã¨ \(m\) ã®å調æ§ï¼ãã \[ \begin{aligned} 1 + \alpha_{k+1}(m + 1) - (m + 1) &\le 1 + 1 + \alpha_{k+1}(m) - (m + 1) \\ &= 1 + \alpha_{k+1}(m) - m \end{aligned} \] ããå¾ãã\(\qed\)
Claim 14: \(k\ge 2 \implies \alpha_k(2n)-\alpha_k(n)\le 1\)ã
Proof
\(\ceil{\log_2(2n)}-\ceil{\log_2(n)} = 1\) 㨠Claim 13 ããå¾ãã
Claim 15: \(\alpha(\alpha_k(n)) = \Theta(\alpha(n))\)ã
Proof
\(n\) ã¯åå大ããã¨ããã
\(\alpha_{k+1}(n) - \alpha_{k+1}(\alpha_k(n)) = 1\) ãããClaim 12 ãç¹°ãè¿ãé©ç¨ãããã㦠\(\alpha_{\alpha(n)-1}(\alpha_k(n)) \le 4\) ã«ãªã£ã¦ã\(\alpha(\alpha_{k+1}(n)) \in\{\alpha(n)-1, \alpha(n)\}\) ã¨ãã«ãªãããã\(\qed\)
Claim 16: \(m\ge 3, n\ge 1 \implies \alpha_{m-2}(A_m(n)+3) = A_m(n-1)+3\) ããã³ \(m\ge 3 \implies \alpha_{m-2}(A_m(0)+3) = 4\)ã
Claim 17: \(m\ge 1, n\ge 0 \implies A_m(n) \ge n + 2\)ã
Proof
\( (m, n)\) ã«é¢ãã帰ç´æ³ã§ç¤ºãã
\(m = 1\) ã®ã¨ãå®ç¾©ããçå·ãæãç«ã¤ã
åºå®ãã \(m\) æªæºã§æãç«ã¤ã¨ããã¨ã\(A_m(0) = A_{m-1}(1) \ge 1 + 2 \ge 0 + 2\) ããæãç«ã¤ã
\( (m, n)\) ããè¾æ¸é ã§å°ãããã®ã«ã¤ãã¦æãç«ã¤ã¨ããã¨ã \[ \begin{aligned} A_m(n) &= A_{m-1}(A_m(n-1)) \\ &\ge A_m(n-1) + 2 \\ &\ge n+1 + 2 \\ &\ge n+2. \quad\qed \end{aligned} \]
Claim 2 ã¨ä¼¼ã¦ããã
Claim 18: \(m\ge 2, n\ge 1 \implies A_m(n)-2 \ge A_m(n-1)\)ã
Proof
帰ç´æ³ã§ç¤ºãã
\(m = 2\) ã®ã¨ã \(A_2(n)-2 = 2n+1 = A_2(n-1)\) ããæãç«ã¤ã
åºå®ãã \(m\) æªæºã§æãç«ã¤ã¨ããã¨ãClaim 17 ãã \[ \begin{aligned} A_m(n) - 2 &= A_{m-1}(A_m(n-1)) - 2 \\ &\ge (A_m(n-1)+2) - 2 \\ &= A_m(n-1). \quad\qed \end{aligned} \]
Claim 19: åºå®ããæ£æ´æ° \(i = O(1)\) ã«å¯¾ãã¦ã\(\alpha'_i = \alpha_i\) ããã³ \(\alpha'_{i+1} = (\alpha_i\circ\alpha'_i)^{\star}\) ã¨ãã\(\alpha'(n) = \min\,\{k\mid \alpha'_k(n)\le 3\}\) ã¨ããããã®ã¨ãã\(\alpha'(n) = \Theta(\alpha(n))\)ã
Proof
Note: \(i = 2\) ã®ã¨ããä¸ã§ã® \(g_0^{\diamond}\) ã«å¯¾å¿ããã
\(\alpha'_m(n) \le \alpha_m(n)\) ã¯æããã
ã¾ãã\(\alpha'_{i+1} = (\alpha_i\circ\alpha_i)^{\star}\) ãªã®ã§ã\(\alpha'_{i+1}(n) = \ceil{\alpha_{i+1}(n)/2}\)ã
\[ \begin{aligned} \alpha_{i+2}(A_{i+3}(n)+3) &= 1 + \alpha_{i+2}(\alpha_{i+1}(A_{i+3}(n)+3)) \\ &= 1 + \alpha_{i+2}(A_{i+3}(n-1)+3) \\ &= n + \alpha_{i+2}(A_{i+3}(0)+3) = n+3 \end{aligned} \] ã§ãããã \[ \begin{aligned} \alpha'_{i+2}(A_{i+3}(n)+3) &= 1 + \alpha'_{i+2}( (\alpha_i\circ\alpha'_{i+1})\,(A_{i+3}(n)+3)) \\ &= 1 + \alpha'_{i+2}(\alpha_i(\alpha'_{i+1}(A_{i+3}(n)+3))) \\ &= 1 + \alpha'_{i+2}(\alpha_i(\ceil{\alpha_{i+1}(A_{i+3}(n)+3)/2})) \\ &\ge 1 + \alpha'_{i+2}(\alpha_i(2\ceil{\alpha_{i+1}(A_{i+3}(n)+3)/2})-1) \\ &\ge 1 + \alpha'_{i+2}(\alpha_i(\alpha_{i+1}(A_{i+3}(n)+3))-1) \\ &\ge 1 + \alpha'_{i+2}(\alpha_i(A_{i+3}(n-1)+3)-1) \\ &= 1 + \alpha'_{i+2}(\alpha_i(A_{i+2}(A_{i+3}(n-2))+3)-1) \\ &= 1 + \alpha'_{i+2}(A_{i+2}(A_{i+3}(n-2)-1)+3-1) \\ &\ge 1 + \alpha'_{i+2}(A_{i+2}(A_{i+3}(n-2)-2)+3) \\ &\ge 1 + \alpha'_{i+2}(A_{i+2}(A_{i+3}(n-3))+3) \\ &= 1 + \alpha'_{i+2}(A_{i+3}(n-2)+3) \\ &\ge \begin{cases} \frac{n}{2} + \alpha'_{i+2}(A_{i+3}(0)+3), & \text{if }n\equiv 0\pmod{2}; \\ \frac{n-1}{2} + \alpha'_{i+2}(A_{i+3}(1)+3), & \text{otherwise}. \end{cases} \end{aligned} \] ããã§ã \[ \begin{aligned} \alpha'_{i+2}(A_{i+3}(0)+3) &\ge 1; \\ \alpha'_{i+2}(A_{i+3}(1)+3) &= 1 + \alpha'_{i+2}(\alpha_i(\ceil{\alpha_{i+1}(A_{i+3}(1)+3)/2})) \\ &= 1 + \alpha'_{i+2}(\alpha_i(\ceil{(A_{i+3}(0)+3)/2})) \\ &\ge 1 + \alpha'_{i+2}(\alpha_i(2\ceil{(A_{i+3}(0)+3)/2})-1) \\ &\ge 1 + \alpha'_{i+2}(\alpha_i(A_{i+3}(0)+3)-1) \\ &= 1 + \alpha'_{i+2}(\alpha_i(A_{i+2}(1)+3)-1) \\ &= 1 + \alpha'_{i+2}(A_{i+2}(0)+3-1) \\ &= 2 \end{aligned} \] ãªã®ã§ã \[ \begin{aligned} \alpha'_{i+2}(A_{i+3}(n)+3) &\ge \Floor{\frac{n+3}{2}} \\ &= \Floor{\frac{\alpha_{i+2}(A_{i+3}(n)+3)}{2}} \end{aligned} \] ãè¨ããã
åæ§ã«ãã¦ã\(m\gt i+2\) ã«ã¤ãã¦ã \(\alpha'_m(A_{m+1}(n)+3) \ge \floor{\alpha_m(A_{m+1}(n))/2}\) ã示ããã ããããã\(\alpha'(n) = \Theta(\alpha(n))\) ãå¾ãã\(\qed\)
ãã£ã¨ã¡ããã¨è¦ç©ããã°ãã£ã¨ç¶ºéºã«ç¤ºãããã
ã¾ã 証æã®æ¹éã¯ç«ã£ã¦ãªããã ãã©ãç´°ããäºæ³ã¨ãã¦ã¯
— okkuu (@kenkenokkuu) 2022å¹´5æ6æ¥
lim_{nââ}α'_{i+1}(n)/α_{i+1}(n)=1/2
lim_{nââ}α'_{i+2以ä¸}(n)/α_{i+2以ä¸}(n)=1
ã£ã½ãã
Claim 20: \(k\ge 2\) ã«é¢ãã¦ã\(\log_2(n)\) ã«é¢ããããæãã®ä¸çå¼ãæãç«ã¤ãªãã°ããã®ä¸çå¼ã® \(\log_2\) ã \(\alpha_k\) ã«ç½®ãæããä¸çå¼ãæãç«ã¤ã
ãã㯠Claim ãï¼
ãããã¡
Claim 14 ã®ã\(\log_2\) ã§æãç«ã¤ã®ã§ Claim 13 ããå¾ããã®ä¸è¬åã¿ãããªãã¨ããããã£ãã§ããClaim 14 ã®å¼æ°é¨åã \(A_m\) ã¨ã \(\alpha_m\) ã¨ãã«ãããã®ããã
ãã®ã¬ãã«ã® \(\alpha_k\) ã§ããã®å¦çãç¡å¹åã§ããã®ã ãããã£ã¨ä¸ã®ã¬ãã«ãªãå½ç¶ç¡å¹ã§ããã¿ãããªã
ããã
ã«ãããã§ããã¤ããã¾ãããã
*1:ãµã³ã¿ããã¨ã¯ç¬ç«ã«ãµã³ã¿ããã®å¸½åãå®ç¾©ã§ããã¨ããä¾ã話ãããã¾ãã
*2:ãã£ããè¨ã£ã¦ã\(o(f(n) )\) ã¯ãªã¼ãã¼ã \(f(n)\) ããçã«å°ãããã¨ã表ãã
*3:\(f^{(r)}(n)\) 㯠\(f\) ã \(n\) ã« \(r\) åé©ç¨ãããã®ã表ãã\(f^{(0)}(r) = r\) 㨠\(f^{(r)}(n) = f(f^{(r-1)}(n) )\)ã\(r\) éå¾®åã§ã¯ãªãã§ãã
*4:æ®ãã®æ¬é¡ãã©ãã ã¨æããã¯èªã人ã®ä¸»è¦³ã«ä»»ãã¾ãã
*5:\(9876!\) ããã¡ã大ããã®ã«å¯¾ãããã \(3, 3, \dots\) ãç¾ãããªãã¨ããã®ãå®æã§ãã¾ãã
*6:\(n\) ã \(\alpha\) ã«ãã£ã¦å°ãã丸ããããå¾ \(A\) ã«ãã£ã¦å¤§ããé£ã°ãããã®ã§ã\(n\) èªä½ã¨ã¯ãããªãã«å·®ãåºã¦ããããä¸ãããããªã«æããããã¨ãã®é¢ä¿ã示ãã®ããªãã
*7:ãããèªãã§ãã人ãå®æ°åãæ°ã«ããªã人ãå¤ãã§ããããããå·®ãªãã¦ããã«æ°ã«ããªããã¨ã¨æãã¾ãã
*8:å®æ°ã®å·®ãããªããã¨ã¯ã¡ããã¨ç¤ºããæ¹ãããã¨æãã¾ãã
*9:RMQ ã¿ãããªã®ã ã¨æã£ã¦ãã ãããä»»æã®æ¼ç®ã§ã
*10:disjoint sparse table ã§ããã
*11:ã\(\alpha(n)\) ã¯å®æ°ãå¦æ´¾ã®äººçã«ã¯ãä»»æã®ã¢ãã¤ãç©ã®åºéã¯ã¨ãªããç·å½¢æéåå¦çã»å®æ°æéã¯ã¨ãªå¦çã§ããããã§ãããã¾ããlog ã¯å®æ°ãå¦æ´¾ã®äººã¯ã»ã°æ¨ã§ãããã§ãããã§ããã©ãã¡ãªã¿ã«ãã¡ãã£ã¨å·¥å¤«ããã ã㧠\(\angled{O(n), O(\alpha(n) )}\) ã«ã§ãã¾ãã
*12:trivial bound ã¨æ¸ããã¦ãã¾ãããä»ã¼ã¼ã£ã¨ãã¦ãã¦ãããããã¾ãããç²ãã¦ãã¾ããã
*13:\(k=0\) ã¨ã㦠\(g(r) = g_0(r)\) ã¨ããã°ããæãã«ãªãã¯ãã
*14:ã¹ã©ã¤ãã§ã¯ \(1+m/n\) ã«ãªã£ã¦ãã¾ããã\(1\) ã§åé¡ãªããã¯ãã¾ãããã£ã¦ãã¾ãããã©ããå®æ°ã®å·®ã ã¨æãã®ã§ãããããã㯠\(m\ge n\) ãä»®å®ãã¦ããããã
*15:\(n\) ã«é¢ããé ã¯ãåæåã®ã³ã¹ãã«ã§ãæ¼ãã¤ããã°ããã¨æãã¾ãã
*16:ãã³ã¡ããã®ãã¤ã¼ãã«å¯¾ãã¦ç¨æè¢å çãè¨ã£ã¦ããããã¼ã¿æ§é ãªã®ã§æãå ¥ããæ·±ãã§ãã
*17:ãããã¯ãleading zero ãæ±ããæ¼ç®ãªã©ããã·ã³èªå½ä»¤ã«ããã®ã§ \(O(1)\) æéã§ã§ããã¨ããä»®å®ã«ãã¦ãããã¨æãã¾ãã