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

プログラミングコンテスト入門 - AtCoder Beginners Selection を解...

Avatar for tsutaj tsutaj
April 15, 2019

プログラミングコンテスト入門 - AtCoder Beginners Selection を解いてみよう

スライド内のリンクを見たい方はこちら:https://hcpc-hokudai.github.io/archive/introduction_abs_001.pdf

高校の部活とか大学のサークルとかで、もしこのスライド使いたいとかあったら、自由に使ってください!

Avatar for tsutaj

tsutaj

April 15, 2019
Tweet

More Decks by tsutaj

Other Decks in Technology

Transcript

  1. ϓϩάϥϛϯάίϯςετೖ໳ AtCoder Beginners Selection Λղ͍ͯΈΑ͏ tsutaj (@tsutaj) Link Hokkaido University

    M2 Apr 15, 2019 tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 1 / 55
  2. 1 ͸͡Ίʹ 2 جຊ ೖग़ྗͷ࿅श 3 AtCoder Beginners Selection Λղ͍ͯΈΑ͏

    Product Placing Marbles Shift Only Coins Some Sums Card Game for Two Kagami Mochi Otoshidama നனເ / Daydream Traveling 4 ࢀߟʹͳΔॻ੶ 5 ͍͞͝ʹ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 2 / 55
  3. ϓϩάϥϛϯάίϯςετͱ͸ʁ ϓϩάϥϛϯάίϯςετ (ϓϩίϯ) ▶ ༩͑ΒΕͨ໰୊ʹରͯ͠ɺ ʮ࣮ߦ͕࣌ؒ଎͘ɺ࣮֬ʹղ౴Ͱ͖Δʯϓϩ άϥϜΛॻ͍ͯਖ਼౴͢Δ͜ͱΛڝ͏ڝٕ ▶ ϓϩάϥϛϯά΍ΞϧΰϦζϜͷεΩϧ͕਎ʹͭ͘ ▶

    ब׆ͳͲͰߦΘΕΔίʔσΟϯάࢼݧʹ༗རʹͳΔ (ͱࢥ͍·͢) Figure: ϓϩίϯ (AtCoder) ͷॱҐදɻੈքத͔ΒࢀՃ͍ͯ͠·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 3 / 55
  4. ϓϩάϥϛϯάίϯςετͷ໰୊Λղ͘ྲྀΕ ϓϩίϯͷ໰୊͸ɺେ͖͘෼͚ͯ࣍ͷ 3 εςοϓΛ౿ΜͰղ͖·͢ 1. 問題について考察 2. 実装に必要な処理を考察 3. 実装・ジャッジに提出

    出題される問題は、見てすぐに解法がわか るようなものばかりではありません。問題 を「実行時間が速く、確実に」解くために 必要な手続きを考察します。 特に最初のうちは、解法はわかっても実装 面で詰まることが多いことでしょう。自分 がやりたい処理を実現するために必要なこ とを考察します。 実装方針が立てば、パソコンの出番です。 実際に書いてみましょう。書いたコードが テストケースに正答できるかどうかは、オ ンラインジャッジが判定してくれます。 tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 4 / 55
  5. ຊεϥΠυͷ໨త ▶ ͜ͷεϥΠυ͸ɺ ʮॳ৺ऀ͕ɺΦϯϥΠϯδϟοδʹϓϩάϥϜΛఏग़ ͯ͠ϓϩάϥϛϯάΛ࿅श͢Δʯ͜ͱͷҰॿΛ໨తͱͨ͠εϥΠυ Ͱ͢ ▶ AtCoder Beginners Selection

    Link Λ࣮ࡍʹղ͖·͢ʂ ͜ͷηοτ͸ɺ ʮAtCoder ʹొ࿥ͨ͠Β࣍ʹ΍Δ͜ͱ ʙ͜Ε͚ͩղ͚͹े෼ઓ͑Δʂ աڈ໰ਫ਼બ 10 બʙʯ(drken ͞Μ) ͷهࣄ Link Ͱબग़͞Εͨ໰୊Λू Ίͨ΋ͷͰ͢ɻ ▶ ϓϩάϥϜͷॻ͖ํʹ͍ͭͯ͸ਂ͘·Ͱ͸۷ΓԼ͛·ͤΜ ▶ ඞཁͰ͋Ε͹ଞͷهࣄͳͲ΋ࢀߟʹ͍ͯͩ͘͠͞ (εϥΠυͷ࠷ޙʹࢀ ߟʹͳΔ΋ͷΛ·ͱΊ͍ͯ·͢) ▶ ·ͩ AtCoder ͷΞΧ΢ϯτΛ͍࣋ͬͯͳ͍ਓ͸ɺొ࿥͠Α͏ʂ Link ▶ εϥΠυ಺ͷίʔυ͸શͯ C++ Ͱॻ͍͍ͯ·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 5 / 55
  6. ͸͡Ίͯͷ͋ͬͱ͜ʔͩʔ ͸͡Ίͯͷ͋ͬͱ͜ʔͩʔ (Welcome to AtCoder) ੔਺ a, b, c ͱจࣈྻ

    s ͕༩͑ΒΕΔͷͰɺ੔਺ a + b + c ͱจࣈྻ s Λۭ ന۠੾ΓͰฒ΂ͯදࣔ͠ɺग़ྗͷ࠷ޙʹվߦ͠ͳ͍͞ɻ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 6 / 55
  7. ͸͡Ίͯͷ͋ͬͱ͜ʔͩʔ ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 3 ͭͷॲཧ͕ඞཁ 1. ೖྗΛड͚औΔ ▶ cin Λ࢖ͬͯೖྗΛड͚औΕ·͢ 2.

    ଍͠ࢉΛ͢Δ ▶ ී௨ͷ࢛ଇԋࢉͷΑ͏ʹ '+' ه߸Ͱ଍͠ࢉ͕Ͱ͖·͢ 3. ग़ྗ͢Δ ▶ cout Λ࢖ͬͯग़ྗͰ͖·͢ ▶ ۭന͸   Λɺվߦ͸ endl Λ࢖͑͹ՄೳͰ͢ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ จষͰ͍ΘΕͯ΋ϐϯͱ͜ͳ͍ͱࢥ͏ͷͰɺ࣮ࡍʹίʔυΛݟͯΈΑ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 7 / 55
  8. Product Product 2 ͭͷਖ਼੔਺ a, b ͕༩͑ΒΕΔͷͰɺa ͱ b ͷੵ͕ح਺Ͱ͋Ε͹

    Odd ͱɺۮ਺Ͱ͋Ε͹ Even ͱग़ྗ͠ͳ͍͞ɻ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 9 / 55
  9. Product ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 3 ͭͷॲཧ͕ඞཁ 1. ೖग़ྗ (͜ΕҎ߱লུ͠·͢) 2. ֻ͚ࢉΛ͢Δ 3.

    ৚݅෼ذ ▶ ح਺ͳΒ Oddɺۮ਺ͳΒ Even ͷΑ͏ʹɺ੔਺ʹΑͬͯॲཧΛม͑ Δඞཁ͕͋Δ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 10 / 55
  10. Product ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 3 ͭͷॲཧ͕ඞཁ 1. ೖग़ྗ (͜ΕҎ߱লུ͠·͢) 2. ֻ͚ࢉΛ͢Δ ▶

    ී௨ͷ࢛ଇԋࢉͷΑ͏ʹ '*' ه߸Ͱֻ͚ࢉ͕Ͱ͖·͢ 3. ৚݅෼ذ ▶ ح਺ͳΒ Oddɺۮ਺ͳΒ Even ͷΑ͏ʹɺ੔਺ʹΑͬͯॲཧΛม͑ Δඞཁ͕͋Δ ▶ if - else จΛ࢖͏ͱɺ͜ͷΑ͏ͳ৚݅෼ذ͕Ͱ͖·͢ ▶ ۮحͷ൑ఆʹ͸ 2 ͰׂΓ੾ΕΔ͔Ͳ͏͔͕ඞཁͰ͕͢ɺ͜Εʹ͸৒༨ܭ ࢉ (৒༨ه߸ '%') ͕༗ޮͰ͢ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ ࣮ࡍʹίʔυΛݟͯΈΑ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 10 / 55
  11. Placing Marbles Placing Marbles '0' ͱ '1' ͷΈ͔ΒͳΔɺ௕͞ 3 ͷจࣈྻ

    s ͕༩͑ΒΕ·͢ɻ͜ͷจࣈྻʹ '1' ؚ͕͍ͭ͘·Ε͍ͯΔ͔ग़ྗ͠ͳ͍͞ɻ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 12 / 55
  12. Placing Marbles ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. จࣈྻʹؚ·ΕΔͦΕͧΕͷจࣈΛݟΔ 2. ৚݅෼ذ ▶

    ͦΕͧΕͷจࣈʹ͍ͭͯɺͦΕ͕ '1' Ͱ͋Ε͹౴͑ʹ 1 Λ଍͢ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 13 / 55
  13. Placing Marbles ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. จࣈྻʹؚ·ΕΔͦΕͧΕͷจࣈΛݟΔ ▶ ಛఆͷൣғͰॲཧΛ܁Γฦ͢ࡍʹ͸ɺfor จ͕༗ޮͰ͢

    ▶ จࣈྻ s ͷ i จࣈ໨͸ɺs[i] ͷΑ͏ʹॻ͘ͱݟΔ͜ͱ͕Ͱ͖·͢ɻ਺ྻ ͷఴࣈͷΑ͏ͳΠϝʔδ 2. ৚݅෼ذ ▶ ͦΕͧΕͷจࣈʹ͍ͭͯɺͦΕ͕ '1' Ͱ͋Ε͹౴͑ʹ 1 Λ଍͢ ▶ if - else จΛ࢖͏ͱɺ͜ͷΑ͏ͳ৚݅෼ذ͕Ͱ͖·͢ ▶ จࣈͷҰக൑ఆ͸ɺઌఔͷ৒༨ͱಉ༷ʹ == Ͱ݁΂͹ՄೳͰ͢ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ ࣮ࡍʹίʔυΛݟͯΈΑ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 13 / 55
  14. Shift Only Shift Only N ݸͷਖ਼੔਺ A1, A2, . .

    . , AN ͕͋Δɻ͜ΕΒͷ੔਺͕͢΂ͯۮ਺Ͱ͋Δ ͱ͖ʹݶΓɺҎԼͷૢ࡞Λߦ͏͜ͱ͕Ͱ͖Δɻૢ࡞ճ਺ͷ࠷େ஋ΛٻΊΑɻ 1. ͦΕͧΕͷ੔਺ Ai ʹ͍ͭͯɺ2 Ͱׂͬͨ΋ͷʹஔ͖׵͑Δɻ ▶ 1 ≤ N ≤ 200 ▶ 1 ≤ Ai ≤ 109 tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 15 / 55
  15. Shift Only ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. ͦΕͧΕͷ੔਺ΛΈͯɺ͢΂ͯۮ਺Ͱ͋Δ͔Ͳ͏͔ௐ΂Δ 2. ৚݅෼ذ ▶

    ح਺͕ͻͱͭͰ΋͋Ε͹ॲཧΛऴྃ ▶ ͢΂ͯۮ਺Ͱ͋Ε͹ɺ֤੔਺Λ 2 ͰׂΔ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 16 / 55
  16. Shift Only ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. ͦΕͧΕͷ੔਺ΛΈͯɺ͢΂ͯۮ਺Ͱ͋Δ͔Ͳ͏͔ௐ΂Δ ▶ ಛఆͷൣғͰॲཧΛ܁Γฦ͢ͷͰɺ͜Ε΋ for

    จ͕༗ޮ ▶ ਺ྻ͸ɺϓϩάϥϛϯάͷੈքͰ͸ʮ഑ྻʯͱ͍͏ߏ଄Λ༻͍ͯද͠· ͢ɻจࣈྻͷ࣌ͱಉ༷ɺ഑ྻ A ͷ i ൪໨ͷ஋͸ A[i] ͰࢀরͰ͖·͢ 2. ৚݅෼ذ ▶ ح਺͕ͻͱͭͰ΋͋Ε͹ॲཧΛऴྃ ▶ ͢΂ͯۮ਺Ͱ͋Ε͹ɺ֤੔਺Λ 2 ͰׂΔ ▶ if - else จΛ࢖͍·͠ΐ͏ ▶ ͢΂ͯۮ਺ͷ৔߹ͷॲཧʹؔͯ͠͸ɺfor จΛ࢖͏ͱޮՌతʹॻ͚ΔͰ ͠ΐ͏ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ ࣮ࡍʹίʔυΛݟͯΈΑ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 16 / 55
  17. Shift Only ͱ͜ΖͰɺ਺ྻ಺ͷ੔਺஋͸ 109 ·ͰͱΓ͏Δ͕ɺ͜ͷղ๏͸ຊ౰ʹؒʹ ߹͏ͷ͔ɾɾɾʁ ▶ ࣮͸ͪΌΜͱؒʹ߹͏ ▶ ૢ࡞Λߦ͏ͱ਺ྻͷ஋͕൒෼ʹͳΓɺ͜Εͷ܁Γฦ͠

    ▶ ૢ࡞ճ਺ ≈ maxi log2 Ai ▶ ࠷ѱͰ΋ɺશମͰ͍͍ͩͨ N × maxi log2 Ai ճ͔͠ܭࢉεςοϓ͕ͳ ͍ͨΊɺ͜ΕͰ OK tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 18 / 55
  18. Shift Only ͱ͜ΖͰɺ਺ྻ಺ͷ੔਺஋͸ 109 ·ͰͱΓ͏Δ͕ɺ͜ͷղ๏͸ຊ౰ʹؒʹ ߹͏ͷ͔ɾɾɾʁ ▶ ࣮͸ͪΌΜͱؒʹ߹͏ ▶ ૢ࡞Λߦ͏ͱ਺ྻͷ஋͕൒෼ʹͳΓɺ͜Εͷ܁Γฦ͠

    ▶ ૢ࡞ճ਺ ≈ maxi log2 Ai ▶ ࠷ѱͰ΋ɺશମͰ͍͍ͩͨ N × maxi log2 Ai ճ͔͠ܭࢉεςοϓ͕ͳ ͍ͨΊɺ͜ΕͰ OK tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 18 / 55
  19. Shift Only ͱ͜ΖͰɺ਺ྻ಺ͷ੔਺஋͸ 109 ·ͰͱΓ͏Δ͕ɺ͜ͷղ๏͸ຊ౰ʹؒʹ ߹͏ͷ͔ɾɾɾʁ ▶ ࣮͸ͪΌΜͱؒʹ߹͏ ▶ ૢ࡞Λߦ͏ͱ਺ྻͷ஋͕൒෼ʹͳΓɺ͜Εͷ܁Γฦ͠

    ▶ ૢ࡞ճ਺ ≈ maxi log2 Ai ▶ ࠷ѱͰ΋ɺશମͰ͍͍ͩͨ N × maxi log2 Ai ճ͔͠ܭࢉεςοϓ͕ͳ ͍ͨΊɺ͜ΕͰ OK tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 18 / 55
  20. Shift Only ͱ͜ΖͰɺ਺ྻ಺ͷ੔਺஋͸ 109 ·ͰͱΓ͏Δ͕ɺ͜ͷղ๏͸ຊ౰ʹؒʹ ߹͏ͷ͔ɾɾɾʁ ▶ ࣮͸ͪΌΜͱؒʹ߹͏ ▶ ૢ࡞Λߦ͏ͱ਺ྻͷ஋͕൒෼ʹͳΓɺ͜Εͷ܁Γฦ͠

    ▶ ૢ࡞ճ਺ ≈ maxi log2 Ai ▶ ࠷ѱͰ΋ɺશମͰ͍͍ͩͨ N × maxi log2 Ai ճ͔͠ܭࢉεςοϓ͕ͳ ͍ͨΊɺ͜ΕͰ OK ܭࢉεςοϓ਺ͷධՁ ϓϩάϥϜΛॻ͘ͱ͖͸ɺͦΕ͕࠷ѱͰͲΕ͚ͩͷεςοϓ࣮ߦ͞ΕΔ͔ Λۛຯ͠Α͏ɻ΋ͬͱৄ͘͠ݴ͏ͱɺϓϩάϥϜͷܭࢉྔΛߟ͑Α͏ɻܭ ࢉྔʹ͍ͭͯ͸ҎԼʹࣔ͢هࣄ͕ࢀߟʹͳΔͱࢥ͍·͢ɻ ▶ ܭࢉྔΦʔμʔͷٻΊํΛ૯੔ཧʂ (drken ͞Μ) Link ▶ ॳ৺ऀ޲͚ ϓϩάϥϜͷܭࢉྔΛٻΊΔํ๏ (cotrpepe ͞Μ) Link tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 18 / 55
  21. Coins Coins 500 ԁۄΛ A ຕɺ100 ԁۄΛ B ຕɺ50 ԁۄΛ

    C ຕ͍࣋ͬͯΔɻ͜ΕΒ͔ ΒԿຕ͔બͼɺ߹ܭֹۚΛͪΐ͏Ͳ X ԁʹ͢Δํ๏͸Կ௨Γ͋Δ͔ٻΊͳ ͍͞ɻ ▶ 0 ≤ A, B, C ≤ 50, A + B + C ≥ 1 ▶ 50 ≤ X ≤ 20, 000 ▶ X ͸ 50 ͷഒ਺Ͱ͋Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 19 / 55
  22. Coins ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. ͦΕͧΕͷίΠϯʹ͍ͭͯɺ࢖͏ຕ਺Λશͯࢼ͢ 2. ࢖͏ຕ਺ΛܾΊͨ࣌ͷֹۚΛܭࢉ͠ɺX Λൺֱ ▶

    ֹ͕ۚ X ͱ౳͚͠Ε͹౴͑ͷ 1 ͭͰ͋Δ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 20 / 55
  23. Coins ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. ͦΕͧΕͷίΠϯʹ͍ͭͯɺ࢖͏ຕ਺Λશͯࢼ͢ ▶ ಛఆͷൣғͰॲཧΛ܁Γฦ͢ͷͰɺ͜Ε΋ for จ͕༗ޮ

    ▶ 3 ͭͷίΠϯʹ͍ͭͯ for จΛճ͢͜ͱʹͳΓ·͕͢ɺfor ͸ଟॏͰ΋େ ৎ෉Ͱ͢ 2. ࢖͏ຕ਺ΛܾΊͨ࣌ͷֹۚΛܭࢉ͠ɺX Λൺֱ ▶ ֹ͕ۚ X ͱ౳͚͠Ε͹౴͑ͷ 1 ͭͰ͋Δ ▶ ౳͍͔͠Ͳ͏͔Ͱॲཧ͕มΘΔͨΊɺif - else จΛ࢖͍·͠ΐ͏ C++ Ͱ͸Ͳ͏ॻ͔͘ʁ ࣮ࡍʹίʔυΛݟͯΈΑ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 20 / 55
  24. Some Sums Some Sums 1 Ҏ্ N ҎԼͷ੔਺ͷ͏ͪɺ10 ਐ๏Ͱͷ֤ܻͷ࿨͕ A

    Ҏ্ B ҎԼͰ͋ Δ΋ͷͷ૯࿨ΛٻΊͳ͍͞ɻ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 22 / 55
  25. Some Sums ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. 1 Ҏ্ N ҎԼͷ֤੔਺ʹ͍ͭͯɺܻ࿨Λௐ΂Δ

    2. ٻΊܻͨ࿨͕ A Ҏ্ B ҎԼͰ͋Δ͔ௐ΂Δ ▶ ৚݅Λຬͨ͢ͳΒ͹ͦͷ੔਺Λ౴͑ʹ଍͢ඞཁ͕͋Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 23 / 55
  26. Some Sums ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾҎԼͷ 2 ͭͷॲཧ͕ඞཁ 1. 1 Ҏ্ N ҎԼͷ֤੔਺ʹ͍ͭͯɺܻ࿨Λௐ΂Δ

    ▶ ܻ࿨Λௐ΂Δύʔτ͸Ͳ͏ॻ͚ΔͰ͠ΐ͏͔ʁ ͜ͷޙৄ͘͠ݟ͍͖ͯ ·͢ ▶ ܻ࿨Λௐ΂Δॲཧ͸ʮؔ਺ʯΛ࢖࣮ͬͯ૷͢ΔͱΑ͍Ͱ͠ΐ͏ 2. ٻΊܻͨ࿨͕ A Ҏ্ B ҎԼͰ͋Δ͔ௐ΂Δ ▶ ৚݅Λຬͨ͢ͳΒ͹ͦͷ੔਺Λ౴͑ʹ଍͢ඞཁ͕͋Δ ▶ ৚݅෼ذͳͷͰ if จͰॻ͘ͱΑͦ͞͏Ͱ͢Ͷ ·ܻͣ࿨ΛٻΊΔॲཧͷίʔυΛࣔ͠ɺͦͷޙʹ͜ͷ໰୊ʹਖ਼౴Ͱ͖Δ ίʔυΛࣔ͠·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 23 / 55
  27. Some Sums ࠓ΍Γ͍ͨॲཧ ਖ਼੔਺ N ͕༩͑ΒΕΔͷͰɺN Λ 10 ਐ๏Ͱදͨ͠ͱ͖ͷ֤ܻͷ࿨͕͍͘ ͭʹͳΔ͔ٻΊΑɻ

    ͜ΕΛ࣮ݱ͢ΔॲཧΛߟ͑ͯΈ·͠ΐ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 24 / 55
  28. Some Sums ࠓ΍Γ͍ͨॲཧ ਖ਼੔਺ N ͕༩͑ΒΕΔͷͰɺN Λ 10 ਐ๏Ͱදͨ͠ͱ͖ͷ֤ܻͷ࿨͕͍͘ ͭʹͳΔ͔ٻΊΑɻ

    ͜ΕΛ࣮ݱ͢ΔॲཧΛߟ͑ͯΈ·͠ΐ͏ ▶ sum ← 0 (sum ʹ 0 Λ୅ೖ) ▶ N ͕ 0 ʹͳΔ·ͰҎԼΛ࣮ߦ ▶ sum ← sum+ (N Λ 10 Ͱׂͬͨ༨Γ) ▶ N ← (N Λ 10 Ͱׂͬͯখ਺఺ҎԼ੾Γࣺͯͨ͠΋ͷ) ࣮ࡍʹ͜ΕͰಈ͘ͷ͔ɺྫͰ֬ೝ͠·͠ΐ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 24 / 55
  29. Some Sums ॲཧͷΠϝʔδΛ͔ͭΜͰΈ͍ͯͩ͘͞ɻ࣍Ͱ࣮૷Λࣔ͠·͢ ࣮ߦྫ N = 758 Ͱ΍ͬͯΈΑ͏ ▶ N

    = 758, sum = 0 ▶ sum ← 0 + 8 = 8 ▶ N ← ⌊758 10 ⌋ = 75 ▶ N = 75, sum = 8 ▶ sum ← 8 + 5 = 13 ▶ N ← ⌊75 10 ⌋ = 7 ▶ N = 7, sum = 13 ▶ sum ← 13 + 7 = 20 ▶ N ← ⌊ 7 10 ⌋ = 0 ▶ N = 0, sum = 20 ▶ N = 0 ʹͳͬͨͨΊɺ͜ΕͰॲཧ͸ऴྃ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 25 / 55
  30. Some Sums ॲཧͷΠϝʔδΛ͔ͭΜͰΈ͍ͯͩ͘͞ɻ࣍Ͱ࣮૷Λࣔ͠·͢ ࣮ߦྫ N = 758 Ͱ΍ͬͯΈΑ͏ ▶ N

    = 758, sum = 0 ▶ sum ← 0 + 8 = 8 ▶ N ← ⌊758 10 ⌋ = 75 ▶ N = 75, sum = 8 ▶ sum ← 8 + 5 = 13 ▶ N ← ⌊75 10 ⌋ = 7 ▶ N = 7, sum = 13 ▶ sum ← 13 + 7 = 20 ▶ N ← ⌊ 7 10 ⌋ = 0 ▶ N = 0, sum = 20 ▶ N = 0 ʹͳͬͨͨΊɺ͜ΕͰॲཧ͸ऴྃ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 25 / 55
  31. Some Sums ॲཧͷΠϝʔδΛ͔ͭΜͰΈ͍ͯͩ͘͞ɻ࣍Ͱ࣮૷Λࣔ͠·͢ ࣮ߦྫ N = 758 Ͱ΍ͬͯΈΑ͏ ▶ N

    = 758, sum = 0 ▶ sum ← 0 + 8 = 8 ▶ N ← ⌊758 10 ⌋ = 75 ▶ N = 75, sum = 8 ▶ sum ← 8 + 5 = 13 ▶ N ← ⌊75 10 ⌋ = 7 ▶ N = 7, sum = 13 ▶ sum ← 13 + 7 = 20 ▶ N ← ⌊ 7 10 ⌋ = 0 ▶ N = 0, sum = 20 ▶ N = 0 ʹͳͬͨͨΊɺ͜ΕͰॲཧ͸ऴྃ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 25 / 55
  32. Some Sums ॲཧͷΠϝʔδΛ͔ͭΜͰΈ͍ͯͩ͘͞ɻ࣍Ͱ࣮૷Λࣔ͠·͢ ࣮ߦྫ N = 758 Ͱ΍ͬͯΈΑ͏ ▶ N

    = 758, sum = 0 ▶ sum ← 0 + 8 = 8 ▶ N ← ⌊758 10 ⌋ = 75 ▶ N = 75, sum = 8 ▶ sum ← 8 + 5 = 13 ▶ N ← ⌊75 10 ⌋ = 7 ▶ N = 7, sum = 13 ▶ sum ← 13 + 7 = 20 ▶ N ← ⌊ 7 10 ⌋ = 0 ▶ N = 0, sum = 20 ▶ N = 0 ʹͳͬͨͨΊɺ͜ΕͰॲཧ͸ऴྃ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 25 / 55
  33. Some Sums ੔਺ N ͕༩͑ΒΕΔͱɺܻ࿨ sum Λฦؔ͢਺ digit_sum 関数 ⼊力引数:

    整数 N 出力  : 桁和 sum 整数 N N の桁和 tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 27 / 55
  34. Some Sums ݩͷ໰୊Λ࠶ܝ͠·͢ Some Sums 1 Ҏ্ N ҎԼͷ੔਺ͷ͏ͪɺ10 ਐ๏Ͱͷ֤ܻͷ࿨͕

    A Ҏ্ B ҎԼͰ͋ Δ΋ͷͷ૯࿨ΛٻΊͳ͍͞ɻ 1. 1 Ҏ্ N ҎԼͷ֤੔਺ʹ͍ͭͯɺܻ࿨Λௐ΂Δ ▶ ܻ࿨Λௐ΂Δॲཧ͸ʮؔ਺ʯΛ࢖࣮ͬͯ૷͢ΔͱΑ͍Ͱ͠ΐ͏ 2. ٻΊܻͨ࿨͕ A Ҏ্ B ҎԼͰ͋Δ͔ௐ΂Δ ▶ ৚݅Λຬͨ͢ͳΒ͹ͦͷ੔਺Λ౴͑ʹ଍͢ඞཁ͕͋Δ ▶ ৚݅෼ذͳͷͰ if จͰॻ͘ͱΑͦ͞͏Ͱ͢Ͷ ؔ਺Λ࢖ͬͯɺ͜ΕΛղ͘ϓϩάϥϜΛॻ͍ͯΈ·͠ΐ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 29 / 55
  35. Card Game for Two Card Game for Two N ຕͷΧʔυ͕͋Γɺi

    ຕ໨ͷΧʔυʹ͸ ai ͱ͍͏਺͕ॻ͔Ε͍ͯΔɻ2 ਓͷϓϨΠϠʔ͕ަޓʹΧʔυΛ 1 ຕͣͭऔ͍͖ͬͯɺ2 ਓ͕શͯͷΧʔ υΛऔͬͨͱ͖ʹήʔϜ͸ऴྃ͢Δɻ֤ϓϨΠϠʔͷಘ఺͸ɺऔͬͨΧʔ υͷ਺ͷ߹ܭͰ͋Δɻ2 ਓ͕ࣗ෼ͷಘ఺Λ࠷େԽ͢ΔΑ͏ʹ࠷దͳઓུΛ औͬͨͱ͖ɺઌख (Alice) ͸ޙख (Bob) ΑΓԿ఺ଟ͘औΔ͔ٻΊΑɻ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 31 / 55
  36. Card Game for Two ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾ ʮ࠷దͳઓུʯΛγϛϡϨʔ γϣϯͰ͖Ε͹ྑ͍Ͱ͢ ▶ ʮ࠷దͳઓུʯͱ͸Կ͔ʁ ▶

    ϓϨΠϠʔͷಘ఺͸ɺಘͨΧʔυʹॻ͔Εͨ਺ͷ߹ܭ ▶ ͦΕͧΕ͸ࣗ෼ͷಘ఺Λ࠷େʹ͍ͨ͠ ▶ ͜ͷ৔߹͸ʮͦͷ࣌఺Ͱଘࡏ͢ΔΧʔυͷ͏ͪ਺͕࠷େͰ͋Δ΋ͷʯ ΛऔΔ͜ͱ͕࠷దͳઓུʹ͋ͨΔʂ ▶ ͜ΕΛγϛϡϨʔγϣϯ͢Δʹ͸Ͳ͏͢Ε͹Α͍͔ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 32 / 55
  37. Card Game for Two ͜ΕΛ࣮ݱ͢ΔϓϩάϥϜΛॻ͘ʹ͸ɾɾɾ ʮ࠷దͳઓུʯΛγϛϡϨʔ γϣϯͰ͖Ε͹ྑ͍Ͱ͢ ▶ ʮ࠷దͳઓུʯͱ͸Կ͔ʁ ▶

    ϓϨΠϠʔͷಘ఺͸ɺಘͨΧʔυʹॻ͔Εͨ਺ͷ߹ܭ ▶ ͦΕͧΕ͸ࣗ෼ͷಘ఺Λ࠷େʹ͍ͨ͠ ▶ ͜ͷ৔߹͸ʮͦͷ࣌఺Ͱଘࡏ͢ΔΧʔυͷ͏ͪ਺͕࠷େͰ͋Δ΋ͷʯ ΛऔΔ͜ͱ͕࠷దͳઓུʹ͋ͨΔʂ ▶ ͜ΕΛγϛϡϨʔγϣϯ͢Δʹ͸Ͳ͏͢Ε͹Α͍͔ʁ ߟ࡯ ▶ ༩͑ΒΕͨ਺ྻ A ͕ A = {3, 10, 2, 7, 13, 2, 51, 7} Ͱ͋ͬͨͱ͖ɺ͜ ͷ··ͰγϛϡϨʔγϣϯ͸͠΍͍͔͢ʁ ▶ ਺ྻʹରͯ͠ɺͲͷΑ͏ͳॲཧΛࢪ͢ͱγϛϡϨʔγϣϯ͠΍͘͢ͳ Δ͔ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 32 / 55
  38. Card Game for Two ▶ ਺ྻ಺ͷཁૉΛ߱ॱʹฒ΂ͯΈΔ A = {3, 10,

    2, 7, 13, 2, 51, 7} ↓ A = {51, 13, 10, 7, 7, 3, 2, 2} tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 33 / 55
  39. Card Game for Two ▶ ਺ྻ಺ͷཁૉΛ߱ॱʹฒ΂ͯΈΔ A = {3, 10,

    2, 7, 13, 2, 51, 7} ↓ A = {51, 13, 10, 7, 7, 3, 2, 2} ▶ ߱ॱʹฒ΂ͨঢ়ଶͩͱɺͦͷ࣌఺Ͱ࠷΋େ͖͍΋ͷ͸؆୯ʹ෼͔Δͷ Ͱɺ؆୯ʹγϛϡϨʔγϣϯͰ͖Δʂ ▶ ੺ࣈ: ઌख (Alice) ͕औΔཁૉ ▶ ੨ࣈ: ޙख (Bob) ͕औΔཁૉ A = {51, 13, 10, 7, 7, 3, 2, 2} tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 33 / 55
  40. Card Game for Two ▶ ਺ྻ಺ͷཁૉΛ߱ॱʹฒ΂ͯΈΔ A = {3, 10,

    2, 7, 13, 2, 51, 7} ↓ A = {51, 13, 10, 7, 7, 3, 2, 2} ▶ ߱ॱʹฒ΂ͨঢ়ଶͩͱɺͦͷ࣌఺Ͱ࠷΋େ͖͍΋ͷ͸؆୯ʹ෼͔Δͷ Ͱɺ؆୯ʹγϛϡϨʔγϣϯͰ͖Δʂ ▶ ੺ࣈ: ઌख (Alice) ͕औΔཁૉ ▶ ੨ࣈ: ޙख (Bob) ͕औΔཁૉ A = {51, 13, 10, 7, 7, 3, 2, 2} Card Game for Two ͷղ๏ 1. ༩͑ΒΕͨ਺ྻΛ߱ॱʹฒ΂Δ 2. (0-indexed Ͱ) ۮ਺൪໨Λઌख͕ɺح਺൪໨Λޙख͕औΔ΋ͷͱͯ͠૯ ࿨Λܭࢉ͠ɺ౴͑Λग़͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 33 / 55
  41. Card Game for Two 1. ਺ྻΛ߱ॱʹฒ΂Δʹ͸Ͳ͏͢Ε͹͍͍ͷʁ ▶ C++ ʹ͸ঢॱιʔτΛߦ͏ؔ਺ 

    (sort) ͱɺ਺ྻΛٯॱʹฒ΂Δؔ਺ (reverse) ͕͋Γ·͢ ▶ sort ؔ਺Ͱঢॱʹฒ΂ͨ΋ͷΛɺreverse ؔ਺Ͱٯॱʹ͢Δͱɺ߱ॱʹฒ Μͩ਺ྻ͕ಘΒΕ·͢ 2. sort ΍ reverse Λ࢖͏ͨΊʹඞཁͳهड़͸͋Δͷʁ ▶ #include <algorithm> ͕ඞཁͳͷͰɺ#include <iostream> ͷ࣍ ͷߦʹͰ΋ॻ͍͓͖ͯ·͠ΐ͏ 1͍Ζ͍Ζࢦఆ͢Ε͹ঢॱҎ֎ͷιʔτ΋Ͱ͖·͕͢ɺ͜͜Ͱ͸লུ͠·͢ɻσϑΥϧτ Ͱ͸ঢॱιʔτͰ͢ɻ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 34 / 55
  42. Kagami Mochi Kagami Mochi N ຕͷԁܗͷ໫͕͋Γɺi ຕ໨ͷ໫ͷ௚ܘ͸ di ηϯνϝʔτϧͰ͢ɻ͜Ε Βͷ໫ͷҰ෦·ͨ͸શ෦Λ࢖ͬͯɺԼஈʹ͋Δ໫ʹߦ͘΄Ͳ௚ܘ͕େ͖͘

    ͳΔΑ͏ʹ (ಉ͡௚ܘΛ࣋ͭ΋ͷΛෳ਺࢖͏͜ͱ͸Ͱ͖·ͤΜ) ڸ໫Λ࡞Γ ·͢ɻ࠷େͰԿஈॏͶͷڸ໫Λ࡞ΕΔ͔ٻΊͳ͍͞ɻ ▶ 1 ≤ N ≤ 100 ▶ 1 ≤ di ≤ 100 tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 36 / 55
  43. Kagami Mochi ڸ໫Λ࡞ΕΔ໫ͷ૊Έ߹Θͤʹ͸ɺͲͷΑ͏ͳ੍໿͕͋Δ͔ʁ ▶ ௚ܘ͕ di, dj Ͱ͋ΔΑ͏ͳ 2 ͭͷ໫

    i, j ʹ͍ͭͯɺಉ࣌ʹ࢖͑Δ͔Ͳ ͏͔ߟ͑Α͏ ▶ ௚ܘ͕ҟͳΔ (di ̸= dj ) ৔߹͸ɺେ͖͍ํΛԼʹ͠ɺখ͍͞ํΛ্ʹ͢ Δ͜ͱͰͲͪΒ΋࢖༻Մೳ ▶ ௚ܘ͕౳͍͠ (di = dj ) ৔߹͸ɺͲͪΒ͔Ұํ͔͠࢖༻Ͱ͖ͳ͍ ▶ ͭ·Γ͜ͷ໰୊͸࣍ͷΑ͏ʹݴ͍׵͑ΒΕΔ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 37 / 55
  44. Kagami Mochi ڸ໫Λ࡞ΕΔ໫ͷ૊Έ߹Θͤʹ͸ɺͲͷΑ͏ͳ੍໿͕͋Δ͔ʁ ▶ ௚ܘ͕ di, dj Ͱ͋ΔΑ͏ͳ 2 ͭͷ໫

    i, j ʹ͍ͭͯɺಉ࣌ʹ࢖͑Δ͔Ͳ ͏͔ߟ͑Α͏ ▶ ௚ܘ͕ҟͳΔ (di ̸= dj ) ৔߹͸ɺେ͖͍ํΛԼʹ͠ɺখ͍͞ํΛ্ʹ͢ Δ͜ͱͰͲͪΒ΋࢖༻Մೳ ▶ ௚ܘ͕౳͍͠ (di = dj ) ৔߹͸ɺͲͪΒ͔Ұํ͔͠࢖༻Ͱ͖ͳ͍ ▶ ͭ·Γ͜ͷ໰୊͸࣍ͷΑ͏ʹݴ͍׵͑ΒΕΔ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 37 / 55
  45. Kagami Mochi ڸ໫Λ࡞ΕΔ໫ͷ૊Έ߹Θͤʹ͸ɺͲͷΑ͏ͳ੍໿͕͋Δ͔ʁ ▶ ௚ܘ͕ di, dj Ͱ͋ΔΑ͏ͳ 2 ͭͷ໫

    i, j ʹ͍ͭͯɺಉ࣌ʹ࢖͑Δ͔Ͳ ͏͔ߟ͑Α͏ ▶ ௚ܘ͕ҟͳΔ (di ̸= dj ) ৔߹͸ɺେ͖͍ํΛԼʹ͠ɺখ͍͞ํΛ্ʹ͢ Δ͜ͱͰͲͪΒ΋࢖༻Մೳ ▶ ௚ܘ͕౳͍͠ (di = dj ) ৔߹͸ɺͲͪΒ͔Ұํ͔͠࢖༻Ͱ͖ͳ͍ ▶ ͭ·Γ͜ͷ໰୊͸࣍ͷΑ͏ʹݴ͍׵͑ΒΕΔ Kagami Mochi ͷ໰୊จݴ͍׵͑ N ݸͷ੔਺͔ΒͳΔ਺ྻ͕͋Γɺi ൪໨ͷ஋͸ di Ͱ͢ɻ͜ͷ਺ྻʹؚ·Ε Δ੔਺͸Կछྨ͋Δ͔ٻΊͳ͍͞ɻ ▶ Կछྨ͋Δ͔਺͑Δʹ͸Ͳ͏͢Ε͹Α͍͔ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 37 / 55
  46. Kagami Mochi ৭ʑͳ΍Γ͔͕ͨ͋Γ·͕͢ɺࠓճ͸഑ྻΛ࢖ͬͯΈ·͠ΐ͏ʂ ▶ ௕͞ 110 Ͱɺॳظ஋͕શͯ 0 ͷ഑ྻ A

    Λ༻ҙ͢Δ ▶ ௕͕͞ 110 ͳͷ͸ di ͷ࠷େ஋͕ 100 Ͱ͋ͬͯɺͦΕʹগ͠༨༟Λ࣋ͨ ͤΔͨΊͰ͢ (഑ྻ֎ࢀরΛ๷͙ͨΊʹ΋༨༟Λ΋ͨͤΔ͜ͱΛ͓͢͢ Ί͠·͢) ▶ ͜ͷ഑ྻ͸ɺ ʮdi ͱ͍͏஋͕਺ྻ಺ʹ͍ͭ͋͘Δʯͱ͍͏৘ใΛ֮͑Δ ͨΊͷ΋ͷͰ͢ ▶ ֤ཁૉ di ʹ͍ͭͯɺରԠ͢Δ A ͷཁૉʹରͯ͠ 1 Ճࢉ͢Δ ▶ ۩ମతʹ͸ A[di ] ʹ 1 ଍͠·͢ ▶ A ͷ֤ཁૉʹ͍ͭͯɺ0 Ͱͳ͍Օॴ͕͍ͭ͋͘Δ͔਺͑ͯɺͦΕΛ౴ ͑ͱͯ͠ग़ྗ ▶ ཁૉͷ஋͕ 0 Ͱͳ͍ͱ͍͏͜ͱ͸ɺͦͷཁૉʹରԠ͍ͯ͠Δ di ͷ஋͕ 1 ͭҎ্ଘࡏ͢Δ͜ͱΛҙຯ͠·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 38 / 55
  47. Kagami Mochi ৭ʑͳ΍Γ͔͕ͨ͋Γ·͕͢ɺࠓճ͸഑ྻΛ࢖ͬͯΈ·͠ΐ͏ʂ ▶ ௕͞ 110 Ͱɺॳظ஋͕શͯ 0 ͷ഑ྻ A

    Λ༻ҙ͢Δ ▶ ௕͕͞ 110 ͳͷ͸ di ͷ࠷େ஋͕ 100 Ͱ͋ͬͯɺͦΕʹগ͠༨༟Λ࣋ͨ ͤΔͨΊͰ͢ (഑ྻ֎ࢀরΛ๷͙ͨΊʹ΋༨༟Λ΋ͨͤΔ͜ͱΛ͓͢͢ Ί͠·͢) ▶ ͜ͷ഑ྻ͸ɺ ʮdi ͱ͍͏஋͕਺ྻ಺ʹ͍ͭ͋͘Δʯͱ͍͏৘ใΛ֮͑Δ ͨΊͷ΋ͷͰ͢ ▶ ֤ཁૉ di ʹ͍ͭͯɺରԠ͢Δ A ͷཁૉʹରͯ͠ 1 Ճࢉ͢Δ ▶ ۩ମతʹ͸ A[di ] ʹ 1 ଍͠·͢ ▶ A ͷ֤ཁૉʹ͍ͭͯɺ0 Ͱͳ͍Օॴ͕͍ͭ͋͘Δ͔਺͑ͯɺͦΕΛ౴ ͑ͱͯ͠ग़ྗ ▶ ཁૉͷ஋͕ 0 Ͱͳ͍ͱ͍͏͜ͱ͸ɺͦͷཁૉʹରԠ͍ͯ͠Δ di ͷ஋͕ 1 ͭҎ্ଘࡏ͢Δ͜ͱΛҙຯ͠·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 38 / 55
  48. Kagami Mochi ৭ʑͳ΍Γ͔͕ͨ͋Γ·͕͢ɺࠓճ͸഑ྻΛ࢖ͬͯΈ·͠ΐ͏ʂ ▶ ௕͞ 110 Ͱɺॳظ஋͕શͯ 0 ͷ഑ྻ A

    Λ༻ҙ͢Δ ▶ ௕͕͞ 110 ͳͷ͸ di ͷ࠷େ஋͕ 100 Ͱ͋ͬͯɺͦΕʹগ͠༨༟Λ࣋ͨ ͤΔͨΊͰ͢ (഑ྻ֎ࢀরΛ๷͙ͨΊʹ΋༨༟Λ΋ͨͤΔ͜ͱΛ͓͢͢ Ί͠·͢) ▶ ͜ͷ഑ྻ͸ɺ ʮdi ͱ͍͏஋͕਺ྻ಺ʹ͍ͭ͋͘Δʯͱ͍͏৘ใΛ֮͑Δ ͨΊͷ΋ͷͰ͢ ▶ ֤ཁૉ di ʹ͍ͭͯɺରԠ͢Δ A ͷཁૉʹରͯ͠ 1 Ճࢉ͢Δ ▶ ۩ମతʹ͸ A[di ] ʹ 1 ଍͠·͢ ▶ A ͷ֤ཁૉʹ͍ͭͯɺ0 Ͱͳ͍Օॴ͕͍ͭ͋͘Δ͔਺͑ͯɺͦΕΛ౴ ͑ͱͯ͠ग़ྗ ▶ ཁૉͷ஋͕ 0 Ͱͳ͍ͱ͍͏͜ͱ͸ɺͦͷཁૉʹରԠ͍ͯ͠Δ di ͷ஋͕ 1 ͭҎ্ଘࡏ͢Δ͜ͱΛҙຯ͠·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 38 / 55
  49. Kagami Mochi ▶ ଞʹ΋ղ๏͸͍Ζ͍Ζ͋Γ·͢ ▶ ιʔτΛ͢Δ ▶ set (C++ ඪ४ϥΠϒϥϦ)

    Λ࢖͏ ▶ map (C++ ඪ४ϥΠϒϥϦ) Λ࢖͏ ▶ unique (C++ ඪ४ϥΠϒϥϦ) Λ࢖͏ ▶ ͳͲͳͲɾɾɾ ▶ ໰୊੍໿ʹԠͯ͡ɺͲͷํ๏͕ద͍ͯ͠Δ͔ߟ͑·͠ΐ͏ ▶ ྫ͑͹ɺઌఔίʔυͰ঺հͨ͠ํ๏͸੍໿͕େ͖͍ͱ࢖͑·ͤΜ ▶ Ծʹ੍໿͕ 1 ≤ di ≤ 109 Ͱ͋ͬͨͱ͖ʹɺͲͷΑ͏ͳ໰୊఺͕ൃੜ͢ Δ͔ߟ͑ͯΈ·͠ΐ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 40 / 55
  50. Otoshidama Otoshidama ͓೥ۄାʹ͸͓ࡳ (10000 ԁࡳɺ5000 ԁࡳɺ1000 ԁࡳ) ͕ N ຕೖ͍ͬͯ

    ͯɺ߹ܭ Y ԁͰ͋Δͦ͏Ͱ͕͢ɺ͜Ε͸ӕ͔΋͠Ε·ͤΜɻ͜ͷΑ͏ͳঢ় گ͕͋ΓಘΔ͔൑ఆ͠ɺ͋Γ͏Δ৔߹͸͓೥ۄାͷத਎ͷީิΛ 1 ͭݟͭ ͚ͳ͍͞ɻଘࡏ͠ͳ͍৔߹͸ -1 -1 -1 ͱग़ྗ͠ͳ͍͞ɻ ▶ 1 ≤ N ≤ 2000 ▶ 1 ≤ Y ≤ 2 × 107 tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 41 / 55
  51. Otoshidama ▶ ໰୊ઃఆ͕ Coins ʹࣅ͍ͯΔɾɾɾʁ ▶ 10000 ԁࡳɺ5000 ԁࡳɺ1000 ԁࡳͦΕͧΕʹ͍ͭͯϧʔϓΛճͤ͹ղ

    ͚ΔͷͰ͸ʁ ▶ ྫ͑͹ɺ࣍ͷΑ͏ͳղ౴͕ߟ͑ΒΕΔ ▶ ͜ͷఏग़͸ TLE (Time Limit Exceeded) ͱͳͬͯ͠·͏ʂ Link tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 42 / 55
  52. Otoshidama ͜͜ͰɺલͷεϥΠυͰ΋ॻ͍ͨ಺༰Λ࠶ܝ ܭࢉεςοϓ਺ͷධՁ ϓϩάϥϜΛॻ͘ͱ͖͸ɺͦΕ͕࠷ѱͰͲΕ͚ͩͷεςοϓ࣮ߦ͞ΕΔ͔ Λۛຯ͠Α͏ɻ΋ͬͱৄ͘͠ݴ͏ͱɺϓϩάϥϜͷܭࢉྔΛߟ͑Α͏ɻܭ ࢉྔʹ͍ͭͯ͸ҎԼʹࣔ͢هࣄ͕ࢀߟʹͳΔͱࢥ͍·͢ɻ ▶ ܭࢉྔΦʔμʔͷٻΊํΛ૯੔ཧʂ (drken ͞Μ)

    Link ▶ ॳ৺ऀ޲͚ ϓϩάϥϜͷܭࢉྔΛٻΊΔํ๏ (cotrpepe ͞Μ) Link ͖͞΄ͲͷϓϩάϥϜʹ͍ͭͯ ▶ 0 ͔Β N − 1 ·ͰͷൣғͰϧʔϓΛճ͢͜ͱΛɺ3 ॏʹͯ͠ߦͬͯ ͍Δ ▶ ͜ͷΑ͏ͳϧʔϓͩͱ N ͷ 3 ৐ʹൺྫͨ͠ܭࢉճ਺͕͔͔Δ ▶ ਖ਼֬ͳઆ໌Ͱ͸͋Γ·ͤΜ͕ɺ͜ͷΑ͏ͳܭࢉྔΛ O(N3) ͱݴͬͨΓ ͠·͢ ▶ ࠓճ͸ N ≤ 2000 ͳͷͰɺ3 ৐ʹൺྫͨ͠ܭࢉճ਺͸ଟ࣮͗ͯ͢ߦ੍ݶ ࣌ؒʹؒʹ߹͍·ͤΜ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 43 / 55
  53. Otoshidama ͜͜ͰɺલͷεϥΠυͰ΋ॻ͍ͨ಺༰Λ࠶ܝ ܭࢉεςοϓ਺ͷධՁ ϓϩάϥϜΛॻ͘ͱ͖͸ɺͦΕ͕࠷ѱͰͲΕ͚ͩͷεςοϓ࣮ߦ͞ΕΔ͔ Λۛຯ͠Α͏ɻ΋ͬͱৄ͘͠ݴ͏ͱɺϓϩάϥϜͷܭࢉྔΛߟ͑Α͏ɻܭ ࢉྔʹ͍ͭͯ͸ҎԼʹࣔ͢هࣄ͕ࢀߟʹͳΔͱࢥ͍·͢ɻ ▶ ܭࢉྔΦʔμʔͷٻΊํΛ૯੔ཧʂ (drken ͞Μ)

    Link ▶ ॳ৺ऀ޲͚ ϓϩάϥϜͷܭࢉྔΛٻΊΔํ๏ (cotrpepe ͞Μ) Link ͖͞΄ͲͷϓϩάϥϜʹ͍ͭͯ ▶ 0 ͔Β N − 1 ·ͰͷൣғͰϧʔϓΛճ͢͜ͱΛɺ3 ॏʹͯ͠ߦͬͯ ͍Δ ▶ ͜ͷΑ͏ͳϧʔϓͩͱ N ͷ 3 ৐ʹൺྫͨ͠ܭࢉճ਺͕͔͔Δ ▶ ਖ਼֬ͳઆ໌Ͱ͸͋Γ·ͤΜ͕ɺ͜ͷΑ͏ͳܭࢉྔΛ O(N3) ͱݴͬͨΓ ͠·͢ ▶ ࠓճ͸ N ≤ 2000 ͳͷͰɺ3 ৐ʹൺྫͨ͠ܭࢉճ਺͸ଟ࣮͗ͯ͢ߦ੍ݶ ࣌ؒʹؒʹ߹͍·ͤΜ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 43 / 55
  54. Otoshidama ܭࢉճ਺͕ݮΔΑ͏ʹ޻෉ͯ͠ΈΑ͏ʂ ▶ 10000 ԁࡳΛ x ຕɺ5000 ԁࡳΛ y ຕɺ1000

    ࡳΛ z ຕ࢖͏ͱ͖ɺҎԼ ͷ৚͕݅੒Γཱ͍ͬͯΕ͹Α͍ ▶ x + y + z = N ▶ 10000x + 5000y + 1000z = Y ▶ ઌఔ͸ x, y, z Λશ෦ϧʔϓͰ୳͍͕ͯͨ͠ɺແବͳ఺͸ͳ͍ͩΖ ͏͔ʁ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 44 / 55
  55. Otoshidama ܭࢉճ਺͕ݮΔΑ͏ʹ޻෉ͯ͠ΈΑ͏ʂ ▶ 10000 ԁࡳΛ x ຕɺ5000 ԁࡳΛ y ຕɺ1000

    ࡳΛ z ຕ࢖͏ͱ͖ɺҎԼ ͷ৚͕݅੒Γཱ͍ͬͯΕ͹Α͍ ▶ x + y + z = N ▶ 10000x + 5000y + 1000z = Y ▶ ઌఔ͸ x, y, z Λશ෦ϧʔϓͰ୳͍͕ͯͨ͠ɺແବͳ఺͸ͳ͍ͩΖ ͏͔ʁ ▶ z = N − x − y ͳͷͰɺx, y ΛܾΊΔͱ z ΋ܾ·Δʂ ▶ ͭ·Γ x, y, z ʹରͯ͠ϧʔϓΛճ͢ඞཁ͸ͳ͘ɺx, y ʹରͯ͠ͷΈϧʔ ϓΛճͤ͹ྑ͍ʂ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 44 / 55
  56. Otoshidama ܭࢉճ਺͕ݮΔΑ͏ʹ޻෉ͯ͠ΈΑ͏ʂ ▶ 10000 ԁࡳΛ x ຕɺ5000 ԁࡳΛ y ຕɺ1000

    ࡳΛ z ຕ࢖͏ͱ͖ɺҎԼ ͷ৚͕݅੒Γཱ͍ͬͯΕ͹Α͍ ▶ x + y + z = N ▶ 10000x + 5000y + 1000z = Y ▶ ઌఔ͸ x, y, z Λશ෦ϧʔϓͰ୳͍͕ͯͨ͠ɺແବͳ఺͸ͳ͍ͩΖ ͏͔ʁ ▶ z = N − x − y ͳͷͰɺx, y ΛܾΊΔͱ z ΋ܾ·Δʂ ▶ ͭ·Γ x, y, z ʹରͯ͠ϧʔϓΛճ͢ඞཁ͸ͳ͘ɺx, y ʹରͯ͠ͷΈϧʔ ϓΛճͤ͹ྑ͍ʂ ▶ ͜ͷղ๏ͩͱ 2 ॏϧʔϓͰࡁΉͷͰɺN ͷ 2 ৐ʹൺྫ͔͔ͨ࣌ؒ͠͠ ͔Βͳ͍ ▶ ͜Εͩͱؒʹ߹͏ʂ ▶ ࣮૷ͯ͠Έ·͠ΐ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 44 / 55
  57. നனເ / Daydream നனເ / Daydream ӳখจࣈ͔ΒͳΔจࣈྻ S ͕༩͑ΒΕΔɻT ͕ۭจࣈྻͰ͋Δঢ়ଶ͔Β࢝

    ΊɺҎԼͷૢ࡞Λ޷͖ͳճ਺܁Γฦ͢͜ͱͰ S = T ͱ͢Δ͜ͱ͕Ͱ͖Δ͔ ൑ఆ͠ͳ͍͞ɻ 1. T ͷ຤ඌʹ dream dreamer erase eraser ͷ͍ͣΕ͔Λ௥Ճ͢Δɻ ▶ 1 ≤ |S| ≤ 105 ▶ S ͸ӳখจࣈ͔ΒͳΔ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 46 / 55
  58. നனເ / Daydream ▶ ํ਑Λཱͯ·͠ΐ͏ ▶ ྫ͑͹ S = dreameraser

    ͱ͍͏จࣈྻΛઌ಄͔ΒॱʹݟΔͱɺ dream Ͱ੾Ε͹ྑ͍ͷ͔ dreamer Ͱ੾Ε͹ྑ͍ͷ͔ͷ൑அ͕೉ ͍͠ ▶ ଞͷΞϓϩʔν͸͋Δ͔ʁ ߟ͑ͯΈ·͠ΐ͏ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 47 / 55
  59. നனເ / Daydream ▶ ํ਑Λཱͯ·͠ΐ͏ ▶ ྫ͑͹ S = dreameraser

    ͱ͍͏จࣈྻΛઌ಄͔ΒॱʹݟΔͱɺ dream Ͱ੾Ε͹ྑ͍ͷ͔ dreamer Ͱ੾Ε͹ྑ͍ͷ͔ͷ൑அ͕೉ ͍͠ ▶ ଞͷΞϓϩʔν͸͋Δ͔ʁ ߟ͑ͯΈ·͠ΐ͏ ▶ ࣮͸ S Λ ޙΖ͔Β ॱʹ੾͍ͬͯ͜͏ͱࢥ͏ͱɺҰؾʹݟ௨͕͠ྑ͘ ͳΔʂ ▶ લ͔ΒಡΉͱ dream ͕ dreamer ʹ׬શʹඃ͍͕ͬͯͨɺޙΖ͔Β ಡΉͱͲͷ 2 ͭΛऔͬͯ΋ඃΔ͜ͱ͸ͳ͍ ▶ maerd, remaerd, esare, resare ͱͳΔͷͰ ▶ ͕ͨͬͯ͠ɺޙΖ͔Β੾͍ͬͯ͘ͱҶͮΔࣜʹܾ·Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 47 / 55
  60. നனເ / Daydream ͍͔ͭ͘ͷจࣈྻૢ࡞͕ඞཁ 1. จࣈྻΛࠨӈ൓స͍ͨ͠ʂ ▶ C++ ʹඪ४Ͱ༻ҙ͞Ε͍ͯ·͢ɻreverse Λ͔͍ͭ·͠ΐ͏

    2. จࣈྻͷ௕͕͞஌Γ͍ͨʂ ▶ ͜Ε΋ඪ४Ͱ༻ҙ͞Ε͍ͯ·͢ɻlength Λ͔͍ͭ·͠ΐ͏ 3. ෦෼จࣈྻ (ݩͷจࣈྻͷ l จࣈ໨͔Β r จࣈ໨·ͰΛτϦϛϯά͠ ͯͰ͖Δจࣈྻ) ͕ཉ͍͠ʂ ▶ ͜Ε΋ඪ४Ͱ༻ҙ͞Ε͍ͯ·͢ɻsubstr Λ͔͍ͭ·͠ΐ͏ ࣍ϖʔδͰ͜ΕΒͷ࢖͍ํؚΊ࣮૷Λࣔ͠·͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 48 / 55
  61. Traveling Traveling AtCoDeer ͘Μ͸ೋ࣍ݩฏ໘্ʹ͓Γɺ࣌ࠁ 0 Ͱ͸ (0, 0) ʹ͍·͢ɻ͍·ɺ ͜ͷ఺Λग़ൃ͠ɺ1

    Ҏ্ N ҎԼͷ֤ i ʹରͯ͠ɺ࣌ࠁ ti ʹ఺ (xi, yi) Λ๚ ΕΔ༧ఆͰ͢ɻ AtCoDeer ͘Μ͕࣌ࠁ t ʹ఺ (x, y) ʹ͍Δͱ͖ɺ࣌ࠁ t + 1 Ͱ͸ (x + 1, y), (x − 1, y), (x, y + 1), (x, y − 1) ͷ͍ͣΕ͔ʹଘࡏͰ͖·͢ (ͦͷ ৔ʹͱͲ·Δ͜ͱ͸Ͱ͖·ͤΜ)ɻAtCoDeer ͘Μཱ͕ͯͨ༧ఆ͕࣮ߦՄೳ ͔Ͳ͏͔൑ఆ͠ͳ͍͞ɻ ▶ 1 ≤ N ≤ 105 ▶ 0 ≤ xi ≤ 105 ▶ 0 ≤ yi ≤ 105 ▶ 1 ≤ ti ≤ 105 ▶ ti < ti+1 (1 ≤ i ≤ N − 1) tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 50 / 55
  62. Traveling ▶ ํ਑Λཱͯ·͠ΐ͏ ▶ ti ͱ ti+1 ͷؒʹ͢ΔҠಈʹ͍ͭͯߟ͑Δ ▶ dt

    = ti+1 − ti , dist = |xi+1 − xi | + |yi+1 − yi | ͱ͓͘ ▶ Ҡಈ͠ͳ͚Ε͹ͳΒͳ͍ڑ཭͕Ҡಈ࣌ؒΑΓ௕͍ɺͭ·Γ dist > dt Ͱ ͋Δ৔߹͸໌Β͔ʹෆՄೳ (Ҏ߱ɺdist ≤ dt ΛԾఆ͠·͢) ▶ xi + yi ͱ͍͏஋ͷۮحʹண໨ ▶ ຖඵ xi ͔ yi ͷ͍ͣΕ͔ʹ͍ͭͯ 1 ͣΕΔ͜ͱ͔Βɺxi + yi ͷۮح͸ ຖඵೖΕସΘΔ ͜ͱ͕Θ͔Δʂ ▶ ͜ͷۮحͷ஋͕ҟͳ͍ͬͯΕ͹ෆՄೳͰ͋Δ͠ɺͦ͏Ͱͳ͚Ε͹ՄೳͰ ͋Δ ▶ ͍ͬͨΜ໨త஍ʹͨͲΓண͍ͨޙ͸ɺͦ͜ΛߦͬͨΓདྷͨΓ͢Δ͜ͱͰඞ ͣୡ੒Ͱ͖Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 52 / 55
  63. Traveling ▶ ํ਑Λཱͯ·͠ΐ͏ ▶ ti ͱ ti+1 ͷؒʹ͢ΔҠಈʹ͍ͭͯߟ͑Δ ▶ dt

    = ti+1 − ti , dist = |xi+1 − xi | + |yi+1 − yi | ͱ͓͘ ▶ Ҡಈ͠ͳ͚Ε͹ͳΒͳ͍ڑ཭͕Ҡಈ࣌ؒΑΓ௕͍ɺͭ·Γ dist > dt Ͱ ͋Δ৔߹͸໌Β͔ʹෆՄೳ (Ҏ߱ɺdist ≤ dt ΛԾఆ͠·͢) ▶ xi + yi ͱ͍͏஋ͷۮحʹண໨ ▶ ຖඵ xi ͔ yi ͷ͍ͣΕ͔ʹ͍ͭͯ 1 ͣΕΔ͜ͱ͔Βɺxi + yi ͷۮح͸ ຖඵೖΕସΘΔ ͜ͱ͕Θ͔Δʂ ▶ ͜ͷۮحͷ஋͕ҟͳ͍ͬͯΕ͹ෆՄೳͰ͋Δ͠ɺͦ͏Ͱͳ͚Ε͹ՄೳͰ ͋Δ ▶ ͍ͬͨΜ໨త஍ʹͨͲΓண͍ͨޙ͸ɺͦ͜ΛߦͬͨΓདྷͨΓ͢Δ͜ͱͰඞ ͣୡ੒Ͱ͖Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 52 / 55
  64. Traveling ▶ ํ਑Λཱͯ·͠ΐ͏ ▶ ti ͱ ti+1 ͷؒʹ͢ΔҠಈʹ͍ͭͯߟ͑Δ ▶ dt

    = ti+1 − ti , dist = |xi+1 − xi | + |yi+1 − yi | ͱ͓͘ ▶ Ҡಈ͠ͳ͚Ε͹ͳΒͳ͍ڑ཭͕Ҡಈ࣌ؒΑΓ௕͍ɺͭ·Γ dist > dt Ͱ ͋Δ৔߹͸໌Β͔ʹෆՄೳ (Ҏ߱ɺdist ≤ dt ΛԾఆ͠·͢) ▶ xi + yi ͱ͍͏஋ͷۮحʹண໨ ▶ ຖඵ xi ͔ yi ͷ͍ͣΕ͔ʹ͍ͭͯ 1 ͣΕΔ͜ͱ͔Βɺxi + yi ͷۮح͸ ຖඵೖΕସΘΔ ͜ͱ͕Θ͔Δʂ ▶ ͜ͷۮحͷ஋͕ҟͳ͍ͬͯΕ͹ෆՄೳͰ͋Δ͠ɺͦ͏Ͱͳ͚Ε͹ՄೳͰ ͋Δ ▶ ͍ͬͨΜ໨త஍ʹͨͲΓண͍ͨޙ͸ɺͦ͜ΛߦͬͨΓདྷͨΓ͢Δ͜ͱͰඞ ͣୡ੒Ͱ͖Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 52 / 55
  65. Traveling ▶ ํ਑Λཱͯ·͠ΐ͏ ▶ ti ͱ ti+1 ͷؒʹ͢ΔҠಈʹ͍ͭͯߟ͑Δ ▶ dt

    = ti+1 − ti , dist = |xi+1 − xi | + |yi+1 − yi | ͱ͓͘ ▶ Ҡಈ͠ͳ͚Ε͹ͳΒͳ͍ڑ཭͕Ҡಈ࣌ؒΑΓ௕͍ɺͭ·Γ dist > dt Ͱ ͋Δ৔߹͸໌Β͔ʹෆՄೳ (Ҏ߱ɺdist ≤ dt ΛԾఆ͠·͢) ▶ xi + yi ͱ͍͏஋ͷۮحʹண໨ ▶ ຖඵ xi ͔ yi ͷ͍ͣΕ͔ʹ͍ͭͯ 1 ͣΕΔ͜ͱ͔Βɺxi + yi ͷۮح͸ ຖඵೖΕସΘΔ ͜ͱ͕Θ͔Δʂ ▶ ͜ͷۮحͷ஋͕ҟͳ͍ͬͯΕ͹ෆՄೳͰ͋Δ͠ɺͦ͏Ͱͳ͚Ε͹ՄೳͰ ͋Δ ▶ ͍ͬͨΜ໨త஍ʹͨͲΓண͍ͨޙ͸ɺͦ͜ΛߦͬͨΓདྷͨΓ͢Δ͜ͱͰඞ ͣୡ੒Ͱ͖Δ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 52 / 55
  66. Traveling ࣮ࡍͷఏग़: Link t0 = 0, (x0, y0) = (0,

    0) ͱ͍͏৘ใΛ௥Ճ࣮ͯ͠૷͢ΔͱָͰ͢ tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 53 / 55
  67. ࢀߟʹͳΔॻ੶ ͓ͦΒ͘͢΂ͯ๺େͷਤॻؗʹ͋Γ·͢ɻҰԠ Amazon ΁ͷϦϯΫ΋͚ͭ ͓͖ͯ·͢ɻ 1. ϓϩάϥϛϯάίϯςετ߈ུͷͨΊͷΞϧΰϦζϜͱσʔλߏ଄ Link ▶ Aizu

    Online Judge ͱ͍͏ΦϯϥΠϯδϟοδͷ໰୊Λ࢖͍ͳ͕Βɺج ૅతͳΞϧΰϦζϜͷԋशΛ͍ͯ͘͠ຊͰ͢ ▶ ίʔυྫ͕๛෋ʹࡌ͍ͬͯΔͷͰ࣮૷ͷࢀߟʹ΋ͳΔͱࢥ͍·͢ 2. ϓϩάϥϛϯάίϯςετνϟϨϯδϒοΫ Link ▶ ڝٕϓϩάϥϚʔͷόΠϒϧతଘࡏͰ͋ΔຊͰ͢ɻجૅతͳτϐοΫ͔ ΒԠ༻తͳ΋ͷ·Ͱ࣮ʹ༷ʑͳ࿩୊͕٧·͍ͬͯ·͢ɻ ▶ ࠷ॳʹ͜ΕΛษڧ͢Δͱগ͠ϋʔυϧ͕ߴ͘ײ͡Δ͔΋͠Ε·ͤΜ (Θ ͔Βͳ͍ͱ͜Ζ͕͋Ε͹࣭໰͖͍ͯͯͩ͘͠͞Ͷʂ ) 3. ࠷ڧ࠷଎ΞϧΰϦζϚʔཆ੒ߨ࠲ Link ▶ AtCoder (ג) ୅දऔక໾ࣾ௕ͷ chokudai ͞Μ͕ஶͨ͠ຊͰ͢ ▶ TopCoder ͷ໰୊ԋशΛ͢Δ࣮ફతͳ಺༰ͰɺC#ɾC++ɾJava ͷղ౴ ྫ͕ࡌ͍ͬͯ·͢ (ಛʹ C# ͷ࣮૷ྫ͕ཉ͍͠ํʹ͓͢͢Ί) tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 54 / 55
  68. ͍͞͝ʹ 1. ࠓճ͸ϓϩάϥϛϯάίϯςετͷೖΓޱͷ෦෼Λ঺հ͠·ͨ͠ 2. ࣮ࡍʹ΋ͬͱ໰୊Λղ͍ͯΈ·͠ΐ͏ʂ AtCoder ͷաڈ໰Λ୳͢ʹ͸ ҎԼͷαΠτ͕ศརͰ͢ ▶ AtCoder

    Problems (աڈ໰Ұཡ) Link ▶ AtCoder Scores (໰୊Λಘ఺ॱʹݟΔ) Link 3. ίϯςετʹ΋ࢀՃ͠·͠ΐ͏ʂ ▶ AtCoder Link ▶ Codeforces Link ▶ CSAcademy Link ▶ TopCoder Link ▶ LeetCode Link 4. ڵຯ͕͋Ε͹ HCPC ͷଞͷ׆ಈɾεϥΠυ΋νΣοΫʂ ▶ ϗʔϜϖʔδ: http://hcpc.web.fc2.com/ Link ▶ Twitter: https://twitter.com/hcpc_hokudai Link ▶ SlideShare: https://www.slideshare.net/hcpc_hokudai Link - END - tsutaj (Hokkaido Univ.) ϓϩίϯೖ໳ Apr 15, 2019 55 / 55