Upgrade to Pro — share decks privately, control downloads, hide ads and more …

競プロ分科会Regular 第1回

Avatar for ZenReKkyo ZenReKkyo
September 30, 2025
43

競プロ分科会Regular 第1回

Avatar for ZenReKkyo

ZenReKkyo

September 30, 2025

Transcript

  1. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 September 30, 2025 Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 1 / 36
  2. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ໨࣍ 1 ͸͡Ίʹ 2 ৞ΈࠐΈɾFFT 3 XOR ৞ΈࠐΈɾߴ଎ Hadamard ม׵ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 2 / 36
  3. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ໨࣍ 1 ͸͡Ίʹ 2 ৞ΈࠐΈɾFFT 3 XOR ৞ΈࠐΈɾߴ଎ Hadamard ม׵ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 3 / 36
  4. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ࣗݾ঺հ Rho17 • ཧֶ෦৘ใՊֶՊ B4(2025 ೥ ݱࡏ) • AtCoder ԫ (2056) • ෼ՊձॳࢀՃͰ։࠵ଆʹճΔ͜ͱ ʹ...... Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 4 / 36
  5. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ਐΊํ • ݻఆ༵ͨ͠೔͸ઃ͚ͳ͍ෆఆظ։࠵ʁ • ि 1 ͘Β͍Ͱग़དྷΔͱ͍͍ͳ...... • ੨ʙᒵ͕ओର৅ͷͭ΋Γ͕ͩɺ֤ճಠཱͳͷͰ෯޿͘ࢀՃͯ͠΄͍͠ • ܭࢉྔͷ࿩͸஌͍ͬͯͯ΄͍͠ • ໰୊ωλόϨ͕͋Δ৔߹͋Γ • ΞϧΰϦζϜͷษڧ͕ϝΠϯʢͷͭ΋Γʣ • Codeforces όνϟͳͲ΋΍Δ͔΋ • ൃද୲౰͸มಈ͠͏Δ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 5 / 36
  6. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ໨࣍ 1 ͸͡Ίʹ 2 ৞ΈࠐΈɾFFT 3 XOR ৞ΈࠐΈɾߴ଎ Hadamard ม׵ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 6 / 36
  7. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ Convolution Convolution Ձ஋ i ԁͷओࡊ͕ Ai छྨɺ Ձ஋ i ԁͷ෭ࡊ͕ Bi छྨ͋Δɻओࡊͱ෭ࡊΛ 1 छ ྨͣͭબΜͰఆ৯Λ࡞Δͱ͖ɺ֤ k (1 ≤ k ≤ 2N) ʹ͍ͭͯબΜͩ඼ͷ߹ܭՁ ͕֨ k ԁʹͳΔఆ৯͸Կ௨Γ࡞ΕΔ͔ΛٻΊΑɻ • 1 ≤ N ≤ 105 ग़య: AtCoder Typical Contest 001-C Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 7 / 36
  8. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ Convolution ೖྗҎ֎ͷ෦෼͸ Ai = Bi = 0 (i ≤ 0, N + 1 ≤ i) ͳͲͱͯ͠΋౴͑͸มΘΒ ͳ͍ɻ ٻΊΔ਺ྻΛ C1, C2, · · · , C2N ͱ͢Δͱɺ Ck = k ∑ i=0 AiBk−i ͜ͷԋࢉΛ Convolution(৞ΈࠐΈ) ͱ͍͏ɻ͜Ε͕ O(N2) ΑΓྑ͘ٻ·Ε͹ Α͍ɻ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 8 / 36
  9. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ Convolution ACL ͕ఏڙͯ͘͠Ε͍ͯΔͷͰɺͦΕΛ࢖͏ʢऴʣ ࢀߟɿAtCoder Library ͷυΩϡϝϯτ Listing 1: convolution 1 auto c=atcoder::convolution_ll(a,b); Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 9 / 36
  10. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ Convolution ACL ͕ఏڙͯ͘͠Ε͍ͯΔͷͰɺͦΕΛ࢖͏ʢऴʣ ࢀߟɿAtCoder Library ͷυΩϡϝϯτ Listing 2: convolution 1 auto c=atcoder::convolution_ll(a,b); ಺෦ͷΞϧΰϦζϜ͸ʁˠߴ଎ϑʔϦΤม׵ (FFT) Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 10 / 36
  11. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ Convolution ͦͷલʹิ଍... • ਺ྻͷ৞ΈࠐΈ͸ͦΕͧΕΛଟ߲ࣜͩͱࢥ͏ͱଟ߲ࣜͷੵʹରԠ • จࣈྻͷύλʔϯϚον΍ϫΠϧυΧʔυϚονϯάʹ࢖༻Մೳʢˠ Convolution ͷ࿅श໰୊ʣ • ෼ׂ౷࣏ FFTʢಛघͳ DP ߴ଎Խʣ͸ࠓճѻΘͳ͍ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 11 / 36
  12. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT ͦ΋ͦ΋ϑʔϦΤม׵ͱ͸ʁ ϑʔϦΤม׵ ؔ਺ f(x) ʹର͠ɺ ˜ f(k) = ∫ ∞ −∞ e−ikxf(x)dx ͱͯ͠ఆ·Δ ˜ f(k) Λ f(x) ͷϑʔϦΤม׵ͱ͍͏ɻ ۭؒ࠲ඪͱ೾਺ΛೖΕସ͑Δ͜ͱʹରԠ͢Δ͕ɺ෺ཧతͳҙຯʹ͸͜ΕҎ্ཱ ͪೖΒͳ͍ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 12 / 36
  13. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT ৞ΈࠐΈఆཧʢ࿈ଓʣ ؔ਺ͷ৞ΈࠐΈ͸ (f ∗ g)(x) := ∫ ∞ −∞ f(x − y)g(y)dy Ͱఆٛ͞ΕΔɻ͜ͷͱ͖ɺ f ∗ g(k) = ˜ f(k)˜ g(k) Proof. ۩ମతܭࢉʹΑΔʢলུʣ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 13 / 36
  14. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT ࠓ·Ͱͷٞ࿦Λ཭ࢄతͳؔ਺ (=਺ྻ) Ͱߦ͏ɻ ཭ࢄϑʔϦΤม׵ n ఺ͷσʔλ X0, · · · , Xn−1 ͕༩͑ΒΕΔɻҎԼͷࣜͰఆ·Δ਺ྻ Y = (Y0, · · · , Yn−1) Λ཭ࢄϑʔϦΤม׵ (DFT) ͱ͍͏ɻ Yk = n−1 ∑ j=0 Xjωjk n ͨͩ͠ ωn = exp(−2πi/n)ɻ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 14 / 36
  15. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT ৞ΈࠐΈఆཧʢ཭ࢄʣ ਺ྻͷ DFT Λ F(A)ɺٯม׵ IDFT Λ F−1(A) ͱॻ͘ɻ A ∗ B = F−1(F(A) ⊙ F(B)) • ਺ྻ A,B Λ DFT ˠཁૉ͝ͱੵΛऔΔˠٯม׵Ͱ໭ͤ͹਺ྻͷ Convolution ͕ಘΒΕΔʂ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 15 / 36
  16. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT Proof. F(A ∗ B) = F(A)F(B) Λࣔ͢ɻ ˜ Cl = N−1 ∑ k=0   ∑ i+j=k AiBj   ωkl N = N−1 ∑ k=0 N−1 ∑ i=0 (Aiωil N )(Bk−iω(k−i)l N ) = ˜ Al ˜ Bl Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 16 / 36
  17. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT DFT ͷఆٛࣜ Yk = ∑ n−1 j=0 Xjωjk n • ਺ྻ A,B Λ DFT ˠཁૉ͝ͱੵΛऔΔˠٯม׵Ͱ໭ͤ͹਺ྻͷ Convolution ͕ಘΒΕΔʂ • DFT ʹ O(N2) ͔͔͍ͬͯͨΒҙຯͳ͍ͷͰ͸ʁ • ͦͷͨΊͷߴ଎ϑʔϦΤม׵ʢFFTʣʂ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 17 / 36
  18. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT Cooley-Tukey ͷΞϧΰϦζϜ N = n1n2 ͱ 2 Ҏ্ͷ੔਺ͷੵͰදͤΔͱ͖ɺj = j1n2 + j2 ͓Αͼ k = k1 + k2n1 ͱॻ͚ΔɻωN N = 1 ʹ஫ҙ͢Δͱɺ Yk1+k2n1 = n2−1 ∑ j2=0 n1−1 ∑ j1=0 Xj1n2+j2 ω(j1n2+j2)(k1+k2n1) n1n2 = n2−1 ∑ j2=0     n1−1 ∑ j1=0 Xj1n2+j2 ωj1k1 n1   ωj2k1 n1n2   ωj2k2 n2 Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 18 / 36
  19. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT Yk1+k2n1 = n2−1 ∑ j2=0        n1−1 ∑ j1=0 Xj1n2+j2 ωj1k1 n1   DFT of size n1 ωj2k1 n1n2      ωj2k2 n2 DFT of size n2 • αΠζ n1n2 ͷ DFT ͕ αΠζ n1 ͱαΠζ n2 ͷ໰୊ʹ෼ׂ͞Εͨʂ • N = 2k ͷ৔߹ɺશମͷܭࢉྔ͸ O(N log N) • ৞ΈࠐΈͷࡍ͸௕͕͞ 2 ႈʹͳΔ·Ͱ 0 ຒΊ͍͍ͯ͠ͷͰɺ͜ΕͰ OK 1 1Ұൠͷ FFT ͩͱউखʹ 0 ຒΊͯ͠͸͍͚ͳ͍ͷͰɺಛʹૉ਺௕ͷ഑ྻͩͱࠔͬͯ͠·͏ɻ ࣮ࡍ͸ͦͷΑ͏ͳೖྗ͸ఘΊΔ͔ɺ͋Δ͍͸ผͷΞϧΰϦζϜͰରԠ͢Δɻ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 19 / 36
  20. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT Yk1+k2n1 = n2−1 ∑ j2=0        n1−1 ∑ j1=0 Xj1n2+j2 ωj1k1 n1   DFT of size n1 ωj2k1 n1n2      ωj2k2 n2 DFT of size n2 • n1 = 2 ͱͯࣜ͠Λॻ͖Լ͢ • ω1 2 = −1 ʹ஫ҙ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 20 / 36
  21. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT Y2k2 = n2−1 ∑ j2=0 (Xj2 + Xn2+j2 ) ωj2k2 n2 Y1+2k2 = n2−1 ∑ j2=0 ( Xj2 + Xn2+j2 ω1 2 ) ωj2 2n2 ωj2k2 n2 = n2−1 ∑ j2=0 ( (Xj2 − Xn2+j2 )ωj2 2n2 ) ωj2k2 n2 AtCoder Library ͳͲ΋࢖͑ΔͷͰ࣮૷ʹ͍ͭͯ͸͜ΕҎ্৮Εͳ͍ʢʁʣ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 21 / 36
  22. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ NTT • mod p ্Ͱಉ͡Α͏ͳܭࢉ͕Ͱ͖Δͱ͋Γ͕͍ͨ • ωN = ω2k ͷଘࡏ͸อূ͞Ε͍ͯͳ͍ • ݪ࢝ࠜͷଘࡏఆཧΑΓɺ͋Δ g ͕ଘࡏͯ͠ gp−1 ≡ 1 mod p ͔ͭ੔਺ 1 ≤ i < p − 1 ʹ͍ͭͯ gi ̸= 1 mod p p − 1 = a × 2c (a ͸ح਺) ͱͯ͠ɺga, g2a, g4a, · · · , ga·2c ͸ͦΕͧΕ mod p ্Ͱ 2c, 2c−1, 2c−2, · · · , 1 ৐ࠜ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 22 / 36
  23. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ NTT 998 244 353 = 119 × 223 + 1, 924 844 033 = 441 × 221 + 1 ͳͲ͸ mod p Ͱͷ 2c ৐͕ࠜे෼ଘࡏʢNTT-Friendlyʣˠࠓ·Ͱͷ ωn Λద੾ʹஔ͖׵͑Δ͜ͱͰ mod p ্Ͱಉ༷ͷܭࢉ͕Ͱ͖Δ (਺࿦ม׵ʢNTTʣ) ഑ྻ௕ΛͦΕͧΕ |A|, |B| ͱͯ͠ɺ|A| + |B| − 1 ≤ 2c ͕ඞཁ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 23 / 36
  24. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ NTT ΋͠ NTT Friendly Ҏ֎ͷ mod Ͱܭࢉ͍ͨ͠৔߹... • ݁Ռ͕େ͖͘ͳΓ͗͢ͳ͍ɾਫ਼౓ͷ৺഑͕ͳ͍ˠෳૉ਺্Ͱ FFT • ͦ͏Ͱͳ͍ˠ NTT-Friendly ͳૉ਺ 3 छྨͰ NTT Λߦ͍ɺதࠃ৒༨ఆཧͰ ෮ݩ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 24 / 36
  25. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ FFT(ิ଍) આ໌ͷͨΊʹ N Λ 2 ͰׂΔ͜ͱΛ܁Γฦ͍͕ͯͨ͠ɺ࣮૷্͸ߴ଎ԽͷͨΊ 4 ͰׂΔૢ࡞ΛࠞͥΔ͜ͱ΋ଟ͍ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 25 / 36
  26. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ࿅श໰୊ • AtCoder Library Practice Contest F - Convolution • AtCoder Beginner Contest 196 F - Substring 2 • ڝϓϩయܕ 90 ໰ 065 - RGB Balls 2ʢ˒ 7ʣ • AtCoder Beginner Contest 291 G - OR Sum • AtCoder Regular Contest 185 C - Sum of Three Integers • AtCoder Grand Contest 047 C - Product Modulo • AtCoder Beginner Contest 307 Ex - Marquee Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 26 / 36
  27. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ໨࣍ 1 ͸͡Ίʹ 2 ৞ΈࠐΈɾFFT 3 XOR ৞ΈࠐΈɾߴ଎ Hadamard ม׵ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 27 / 36
  28. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ XOR Convolution ఴࣈͷ XOR ʹ͍ͭͯ৞ΈࠐΈΛߦ͏ɻ͢ͳΘͪɺ Ck = ∑ i⊕j=k AiBj ͱͯ͠ఆ·Δྻ C0, · · · , C2n−1 Λܭࢉ͍ͨ͠ɻ ʢXOR Convolutionʣ ਺ྻʹม׵Λࢪ֤ͯ͠఺ੵʹͰ͖ͳ͍͔ʁ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 28 / 36
  29. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ߴ଎ Hadamard ม׵ Hadamard ߦྻ ҎԼͰఆ·Δ 2n × 2n ߦྻΛ Hadamard ߦྻͱ͍͏ɻ H0 = (1) Hn+1 = 1 √ 2   Hn Hn Hn −Hn   ͙͢Θ͔Δࣄ࣮ɿH2 n = I Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 29 / 36
  30. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ߴ଎ Hadamard ม׵ ৞ΈࠐΈఆཧʢXORʣ A ͱ B ͷ XOR ৞ΈࠐΈΛ୯ʹ A ∗ B ͱॻ͘ɻ A ∗ B = 2n/2Hn ((HnA) ⊙ (HnB)) n = 1 ͷͱ͖͸࣮ࡍͷܭࢉͰ͔֬ΊΒΕΔɻ͋Δ n Ͱ੒ཱ͢ΔͳΒ͹ɺ (Hn+1A) ⊙ (Hn+1B) = 1 2     Hn Hn Hn −Hn     A0 A1   ⊙   Hn Hn Hn −Hn     B0 B1     = 1 2   Hn(A0 + A1) ⊙ Hn(B0 + B1) Hn(A0 − A1) ⊙ Hn(B0 − B1)   Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 30 / 36
  31. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ߴ଎ Hadamard ม׵ 2(n+1)/2Hn+1((Hn+1A) ⊙ (Hn+1B)) = 2n/2−1   Hn Hn Hn −Hn     Hn(A0 + A1) ⊙ Hn(B0 + B1) Hn(A0 − A1) ⊙ Hn(B0 − B1)   = 1 2   (A0 + A1) ∗ (B0 + B1) + (A0 − A1) ∗ (B0 − B1) (A0 + A1) ∗ (B0 + B1) − (A0 − A1) ∗ (B0 − B1)   =   A0 ∗ B0 + A1 ∗ B1 A0 ∗ B1 + A1 ∗ B0   = A ∗ B Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 31 / 36
  32. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ߴ଎ Hadamard ม׵ ߦྻͱͷੵΛܭࢉ͍ͯͯ͠͸ O(N2) Ͱμϝˠߴ଎ Hadamard ม׵ Hn+1   A0 A1   Λܭࢉ͍ͨ͠ͱ͖ɺHnA0, HnA1 Λ࠶ؼతʹܭࢉ͢Ε͹   HnA0 + HnA1 HnA0 − HnA1   ͱͯ͠෮ݩͰ͖Δˠܭࢉྔ O(N log N) ࣜΛΑ͘ݟͯΈΔͱɺn ࣍ݩۭؒͰαΠζ 2 ͷ DFT Λܭࢉ͍ͯ͠Δ͜ͱʹଞͳ Βͳ͍ʂʢO(N log N) ͰܭࢉͰ͖Δͷ΋౰વʣ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 32 / 36
  33. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ AND/OR ৞ΈࠐΈ i&j = k ͳΔϖΞ (i, j) શͯʹ͍ͭͯͷ ∑ AiBj ΛٻΊ͍ͨ৔߹ɺ Z0 = (1) Zn+1 =   Zn Zn O Zn   i|j = k ͳΔϖΞͷ৔߹ɺ M0 = (1) Mn+1 =   Mn O Mn Mn   Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 33 / 36
  34. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ AND/OR ৞ΈࠐΈ ͦΕͧΕߴ଎θʔλม׵/ߴ଎ϝϏ΢εม׵͔Βࣗવʹಋग़͞ΕΔʢৄࡉུʣ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 34 / 36
  35. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ࿅श໰୊ • AtCoder Beginner Contest 212 H - Nim Counting • ೔ཱ੡࡞ॴϓϩάϥϛϯάίϯςετ 2020 E - Odd Sum Rectangles • AtCoder Beginner Contest 220 H - Security Camera • AtCoder Beginner Contest 367 G - Sum of (XORˆ K or 0) Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 35 / 36
  36. ڝϓϩ෼Պձ Regular ୈ 1 ճ Rho17 ͸͡Ίʹ ৞ΈࠐΈɾFFT XOR ৞ΈࠐΈɾߴ

    ଎ Hadamard ม׵ ࣍ճ༧ࠂ • ্͔ΒԼʹ޲͚ͯ४උ͕Ͱ͖ͦ͏ͳॱ • 3 ճ͘Β͍࢖ͬͯϑϩʔͱ͔Ϛονϯάͱ͔ LP • Pr¨ ufer code • ήʔϜཧ࿦ʢNim,Grundy ਺,Partisan Game, ௒ݱ࣮਺ʣ • FPS • εϖΫτϧάϥϑཧ࿦ʢߦྻ໦ఆཧɺLGV ެࣜ...ʣ Rho17 ڝϓϩ෼Պձ Regular ୈ 1 ճ September 30, 2025 36 / 36