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

確率 DP を極めよう - 確率と期待値の問題解説

Avatar for tsutaj tsutaj
February 20, 2018

確率 DP を極めよう - 確率と期待値の問題解説

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

Avatar for tsutaj

tsutaj

February 20, 2018
Tweet

More Decks by tsutaj

Other Decks in Programming

Transcript

  1. ֬཰ DP ΛۃΊΑ͏ ֬཰ͱظ଴஋ͷ໰୊ղઆ tsutaj (@tsutaj) Hokkaido University B4 February

    20, 2018 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 1 / 54
  2. 1 ͸͡Ίʹ 2 ॳڃฤ ֬཰ ग़ͨ໨ͷ࿨ (֬཰ฤ) ίΠϯτε τʔφϝϯτ ظ଴஋

    ग़ͨ໨ͷ࿨ (ظ଴஋ฤ) HSI 3 தڃฤ Τϥτεςωεͷ͟Δ τϦϓϧΧʔυίϯϓ ίΠϯ 4 ্ڃฤ RareItems Ϙʔϧ ΧʔυήʔϜ (Hard) ͤΜ΂͍ 5 ࿅श໰୊ू tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 2 / 54
  3. ͍ͨͤͭͳ͜ͱ DP Λղ্͘Ͱେ੾ͳ͜ͱ ࣋ͭ΂͖ঢ়ଶΛݟۃΊΖʂ ͜Ε͕Ұ൪େࣄͱݴͬͯ΋աݴͰ͸ͳͦ͞͏ ܇࿅͕ඞཁͩͱࢥ͍·͢ యܕΛ஌͓͚ͬͯʂ ॳݟͰղ͘ͷ΋ݶք͕͋Γ·͢ ͋Δఔ౓ܕΛ஌͓ͬͯ͘ͷ͸େࣄͰ͢ ༨ࣄ৅Λߟ͑Ζʂ

    ໰୊Ͱ໰ΘΕͨ৚݅ʹʮ౰ͯ͸·Βͳ͍΋ͷʯΛ਺͑ͨ΄͏͕ɼݟ௨͠ ͕ྑ͍৔߹͕͋Γ·͢ ͱ͍͏Θ͚ͰɼࠓճͰ֬཰ DP ͷయܕΛ஌Γ·͠ΐ͏ ˞ Ұ෦ɼDP ͡Όͳ͍໰୊΋͋Γ·͢ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 4 / 54
  4. ֬཰ ॳڃฤͳͷͰɼ·ͣ͸جຊతࣄ߲ͷ͓͞Β͍ ֬཰ ࣄ৅ A ͕ى͜Δ֬཰ P(A) = A ͕ى͜Δස౓

    શࣄ৅ͷස౓࿨ ྫ: 6 ໘αΠίϩΛ 1 ճৼͬͯ 5 Ҏ্͕ग़Δ֬཰ P(x ≥ 5) = 1+1 6 = 1 3 ࣄ৅ A Ҏ֎͕ى͜Δ֬཰ P( ¯ A) = 1 − P(A) (༨ࣄ৅) ྫ: 2 ճͷίΠϯτεͰද͕গͳ͘ͱ΋ 1 ճग़Δ֬཰: 1 − 1 2 2 = 3 4 ͜Ε͸ɼ ʮ2 ճͱ΋ཪ͕ग़Δʯͷ༨ࣄ৅ ৚݅෇͖֬཰ ͋Δࣄ৅ B ͕ى͜Δͱ͍͏৚݅ԼͰࣄ৅ A ͕ى͜Δ֬཰ P(A|B) = P(A∩B) P(B) ྫ: 1 ճ໨ͷίΠϯτεͰද͕ग़ͨͱ͖ɼ΋͏ 1 ճίΠϯτε͢Δ͜ͱ Ͱ 2 ճ࿈ଓදʹͳΔ֬཰ P(2 ճ࿈ଓද |1 ճ໨͕ද) = 1/2×1/2 1/2 = 1 2 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 5 / 54
  5. ग़ͨ໨ͷ࿨ (֬཰ฤ) ໰୊ (ग़ͨ໨ͷ࿨ (֬཰ฤ)) 1 ͔Β 6 ·Ͱͷ੔਺͕౳֬཰ʹग़ΔαΠίϩ͕ 1

    ͭ͋Δɽ͜ͷαΠίϩΛ N ճৼΔͱ͖ɼग़ͨ໨ͷ਺ͷ࿨͕ K Ҏ্ʹͳΔ֬཰ΛٻΊΑɽ 1 ≤ N ≤ 2 × 103 1 ≤ K ≤ 6 × N αϯϓϧ ೖྗ 1: JT1 ग़ྗ 1: JT1 ೖྗ 2: JT1 ग़ྗ 2: JT1 ԿΛঢ়ଶͱͯ࣋ͭ͠΂͖ʁ ঢ়ଶ͔Βঢ়ଶ΁ͷભҠ͸Ͳ͏ͳΔʁ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 6 / 54
  6. ग़ͨ໨ͷ࿨ (֬཰ฤ) ໰୊ (ग़ͨ໨ͷ࿨ (֬཰ฤ)) 1 ͔Β 6 ·Ͱͷ੔਺͕౳֬཰ʹग़ΔαΠίϩ͕ 1

    ͭ͋Δɽ͜ͷαΠίϩΛ N ճৼΔͱ͖ɼग़ͨ໨ͷ਺ͷ࿨͕ K Ҏ্ʹͳΔ֬཰ΛٻΊΑɽ 1 ≤ N ≤ 2 × 103 1 ≤ K ≤ 6 × N ԿΛঢ়ଶͱͯ࣋ͭ͠΂͖ʁ i ճαΠίϩΛৼͬͨͱ͖ɼग़ͨ໨ͷ਺ͷ࿨͕ j ʹͳΔ֬཰ ঢ়ଶ͔Βঢ়ଶ΁ͷભҠ͸Ͳ͏ͳΔʁ αΠίϩΛৼͬͨͱ͖ʹग़ͨ໨ͷ਺͚ͩɼग़ͨ໨ͷ਺ͷ࿨͕૿͑Δ αΠίϩͷ໨ x ͕ग़Δ֬཰͸ 1 6 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 6 / 54
  7. ίΠϯτε ໰୊ (ίΠϯτε) ίΠϯτεΛ N ճߦ͏ͱ͖ɼද·ͨ͸ཪ͕ K ճҎ্࿈ଓͰग़Δ֬཰Λٻ ΊΑɽ 1

    ≤ N ≤ 2 × 103 1 ≤ K ≤ N ग़య: ΤϨΨϯτͳղ๏ɼΤϨϑΝϯτͳղ๏ ʙϞϯςΧϧϩ๏Λఴ͑ͯʙ (վ) Link αϯϓϧ ೖྗ 1: JT1 ग़ྗ 1: JT1 ೖྗ 2: JT1 ग़ྗ 2: JT1 ԿΛঢ়ଶͱͯ࣋ͭ͠΂͖ʁ ঢ়ଶ͔Βঢ়ଶ΁ͷભҠ͸Ͳ͏ͳΔʁ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 8 / 54
  8. ίΠϯτε ໰୊ (ίΠϯτε) ίΠϯτεΛ N ճߦ͏ͱ͖ɼද·ͨ͸ཪ͕ K ճҎ্࿈ଓͰग़Δ֬཰Λٻ ΊΑɽ 1

    ≤ N ≤ 2 × 103 1 ≤ K ≤ N ग़య: ΤϨΨϯτͳղ๏ɼΤϨϑΝϯτͳղ๏ ʙϞϯςΧϧϩ๏Λఴ͑ͯʙ (վ) Link ԿΛঢ়ଶͱͯ࣋ͭ͠΂͖ʁ i ճαΠίϩΛৼͬͨͱ͖ɼi ճ໨ͷ݁Ռ͕ j ࿈ଓ໨Ͱ͋Δ֬཰ ঢ়ଶ͔Βঢ়ଶ΁ͷભҠ͸Ͳ͏ͳΔʁ ௚લ·Ͱ x ࿈ଓ ˠ ௚લͱಉ݁͡ՌͳΒ x + 1 ࿈ଓɼҟͳΕ͹ 1 ࿈ଓ ʮK ճҎ্࿈ଓʯͷ༨ࣄ৅ ˠ ʮK ճະຬ࿈ଓʯ x (1 ≤ x < K) ճ࿈ଓ͢Δ֬཰ͷ૯࿨Λग़ͯ͠ɼͦΕΛ 1 ͔ΒҾ͜͏ දͱཪΛ۠ผ͢Δඞཁͳ͠ (௚લͱಉ͔͡ҧ͏͔͚ͩΘ͔Ε͹ྑ͍) tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 8 / 54
  9. τʔφϝϯτ ໰୊ (τʔφϝϯτ) 2K ਓͷࢀՃऀͰ K ϥ΢ϯυͷτʔφϝϯτઓΛߦ͏ɽͦΕͧΕͷਓʹ͸ Ϩʔτ Ri ͕͍͓ͭͯΓɼਓ

    P ͱ Q ͕ରઓ͢Δͱ͖ɼP ͕উͭ֬཰͸ 1 1+10(RQ−RP )/400 Ͱ͋ΔɽͦΕͧΕͷਓʹ͍ͭͯ༏উ͢Δ֬཰ΛٻΊΑɽ 1 ≤ K ≤ 10 0 ≤ Ri ≤ 4000 ग़య: Typical DP Contest: C Link tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 10 / 54
  10. τʔφϝϯτ ਓ i ͕༏উ͢Δ ˠ ਓ i ͕ K ϥ΢ϯυ໨Λऴ͑ͯ΋ੜ͖࢒͍ͬͯΔ

    tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 11 / 54
  11. τʔφϝϯτ ਓ i ͕༏উ͢Δ ˠ ਓ i ͕ K ϥ΢ϯυ໨Λऴ͑ͯ΋ੜ͖࢒͍ͬͯΔ

    dp[i][k] := ਓ i ͕ k ϥ΢ϯυ໨Λऴ͑ͨ࣌ʹੜ͖࢒͍ͬͯΔ֬཰ ͸͡Ί͸શһੜ͖࢒͍ͬͯΔͷͰɼdp[i][0] = 1.0 ਓ i ͕ਓ j ͱରઓͨ࣌͠ʹউͭ֬཰Λ Pij ͱɼk ϥ΢ϯυ໨ʹ͓͍ͯ i ͱରઓ͢ΔՄೳੑͷ͋Δ૬खͷू߹Λ Sik ͱද͢ͱ͖ɼ dp[i][k] = j∈Sik ରઓ͕࣮ݱ͢ΔՄೳੑ dp[i][k − 1] × dp[j][k − 1] ×Pij ͱ͍͏ߋ৽ࣜʹͳΔ (ରઓ͢ΔՄೳੑͷ͋Δ૬खͷू߹Λग़͢ͷ͕ͪΐͬͱ໘౗͔΋) tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 11 / 54
  12. τʔφϝϯτ ਓ i ͕༏উ͢Δ ˠ ਓ i ͕ K ϥ΢ϯυ໨Λऴ͑ͯ΋ੜ͖࢒͍ͬͯΔ

    dp[i][k] := ਓ i ͕ k ϥ΢ϯυ໨Λऴ͑ͨ࣌ʹੜ͖࢒͍ͬͯΔ֬཰ ͸͡Ί͸શһੜ͖࢒͍ͬͯΔͷͰɼdp[i][0] = 1.0 ਓ i ͕ਓ j ͱରઓͨ࣌͠ʹউͭ֬཰Λ Pij ͱɼk ϥ΢ϯυ໨ʹ͓͍ͯ i ͱରઓ͢ΔՄೳੑͷ͋Δ૬खͷू߹Λ Sik ͱද͢ͱ͖ɼ dp[i][k] = j∈Sik ରઓ͕࣮ݱ͢ΔՄೳੑ dp[i][k − 1] × dp[j][k − 1] ×Pij ͱ͍͏ߋ৽ࣜʹͳΔ (ରઓ͢ΔՄೳੑͷ͋Δ૬खͷू߹Λग़͢ͷ͕ͪΐͬͱ໘౗͔΋) ౴͑͸ dp[i][K] tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 11 / 54
  13. ظ଴஋ ظ଴஋ ֬཰ม਺ X: ஋ xi ͕ pi ͷ֬཰Ͱग़Δม਺ X

    ͷظ଴஋ E[X] = n i=1 xi × P(X = xi) ྫ: αΠίϩΛ 1 ճৼͬͯग़Δ໨ͷظ଴஋ E1 = 1+2+3+4+5+6 6 = 3.5 ظ଴஋ͷઢܗੑ: E[X + Y ] = E[X] + E[Y ] X ͱ Y ͕ಠཱͰͳͯ͘΋੒ཱʂ ྫ: αΠίϩΛ 10 ճৼͬͯग़Δ໨ͷظ଴஋ E10 = 10 × E1 = 35 X ͱ Y ͕ಠཱͰ͋Δ৔߹ɼE[XY ] = E[X]E[Y ] ৚݅෇͖ظ଴஋ ֬཰ม਺ Y ͷ஋͕ y Ͱ͋Δͱ͍͏৚݅ԼͰͷ X ͷظ଴஋ E[X|Y = y] = x x × P(X=x,Y =y) P(Y =y) = f(y) (y ͷؔ਺) 1 ͭΊͷαΠίϩͰ 2 ͕ग़ͨͱ͖ɼ2 ͭͷαΠίϩͷ໨ͷੵͷظ଴஋ E = 1×2+2×2+···+6×2 6 = 7 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 13 / 54
  14. ग़ͨ໨ͷ࿨ (ظ଴஋ฤ) ໰୊ (ग़ͨ໨ͷ࿨ (ظ଴஋ฤ)) 1 ͔Β 6 ·Ͱͷ੔਺͕౳֬཰ʹग़ΔαΠίϩ͕ 1

    ͭ͋Δɽग़ͨ໨ͷ਺ͷ࿨ ͕ K Ҏ্ʹͳΔ·Ͱ͜ͷαΠίϩΛৼΔͱ͖ɼαΠίϩΛৼΔճ਺ͷظ଴ ஋ΛٻΊΑɽ 1 ≤ K ≤ 105 αϯϓϧ ೖྗ 1: JT1 ग़ྗ 1: JT1 ೖྗ 2: JT1 ग़ྗ 2: JT1 ԿΛঢ়ଶͱͯ࣋ͭ͠΂͖ʁ ঢ়ଶ͔Βঢ়ଶ΁ͷભҠ͸Ͳ͏ͳΔʁ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 14 / 54
  15. ग़ͨ໨ͷ࿨ (ظ଴஋ฤ) ໰୊ (ग़ͨ໨ͷ࿨ (ظ଴஋ฤ)) 1 ͔Β 6 ·Ͱͷ੔਺͕౳֬཰ʹग़ΔαΠίϩ͕ 1

    ͭ͋Δɽग़ͨ໨ͷ਺ͷ࿨ ͕ K Ҏ্ʹͳΔ·Ͱ͜ͷαΠίϩΛৼΔͱ͖ɼαΠίϩΛৼΔճ਺ͷظ଴ ஋ΛٻΊΑɽ 1 ≤ K ≤ 105 ԿΛঢ়ଶͱͯ࣋ͭ͠΂͖ʁ ࿨͕ S (ঢ়ଶ S) ͔Β K Ҏ্ʹ͢ΔͨΊʹඞཁͳճ਺ͷظ଴஋ ES ঢ়ଶ͔Βঢ়ଶ΁ͷભҠ͸Ͳ͏ͳΔʁ ࿨͕ K Ҏ্ͷঢ়ଶͰ͸ɼ͜ͷظ଴஋͸໌Β͔ʹ 0 ࠓͷ࿨͕ S Ͱɼग़ͨ໨͕ x Ͱ͋Δͱ͍͏৚݅ԼͰͷظ଴஋Λߟ͑Α͏ ঢ়ଶ S ͰαΠίϩΛৼͬͯ x ͕ग़ͨ৔߹ɼঢ়ଶ S + x ʹભҠ ঢ়ଶ S + x ͔Β K Ҏ্ʹ͢ΔͨΊʹඞཁͳճ਺ͷظ଴஋͸ ES+x ग़ͨ໨͕ x Ͱ͋Δͱ͖ͷ৚݅෇͖ظ଴஋͸ɼS ͔Β S + x ʹ͢Δ·Ͱʹ 1 ճཁ͍ͯ͠Δ͜ͱ͔Β ES+x + 1 Ͱɼͦͷ֬཰͸ 1 6 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 14 / 54
  16. ग़ͨ໨ͷ࿨ (ظ଴஋ฤ) ΑͬͯɼͦΕͧΕͷظ଴஋ʹ͍ͭͯҎԼ͕੒ཱ ES = 0 (S ≥ K) 6

    x=1 ES+x+1 6 (S < K) (1) ޙΖ͔Βܾఆ͍ͯ͘͠ͷͰɼEK−1 ͔ΒॱʹٻΊΔ ౴͑͸ E0 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 16 / 54
  17. HSI ໰୊ (HSI) ςετέʔε͕ N ݸ͋Δ໰୊ʹରͯ͠ɼM έʔεͰ͸࣮ߦʹͦΕͧΕ 1900ms ཁͯ͠ 1

    2 ͷ֬཰Ͱਖ਼ղ͠ɼ࢒Γͷ N − M έʔεͰ͸࣮ߦʹͦΕͧ Ε 100ms ཁͯ͠ඞͣਖ਼ղ͢ΔϓϩάϥϜΛɼҎԼͷنଇʹैͬͯఏग़͢Δ ఏग़ͨ݁͠ՌɼM έʔεͷ͏͍ͪͣΕ͔͕ෆਖ਼ղͰ͋Δ৔߹͸ɼ࠶౓ ఏग़͢Δɽ Ұ౓ͷఏग़Ͱશͯͷςετέʔεʹਖ਼ղ͢Δ·Ͱ͜ΕΛ܁Γฦ͢ɽ Accepted ͢Δ·ͰͷϓϩάϥϜͷ࣮ߦ࣌ؒͷ૯࿨ͷظ଴஋Λग़ྗͤΑɽ 1 ≤ N ≤ 100 1 ≤ M ≤ min(N, 5) ग़య: AtCoder Regular Contest 085: C Link αϯϓϧ ೖྗ: JT1 ग़ྗ: JT1 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 18 / 54
  18. HSI P = 1 2 M EB = 0 (΋͏

    AC ͍ͯ͠ΔͨΊ) EA = (1 − P) × (EA + 1) + P × (EB + 1) = (1 − P)EA + 1 ͞Βʹมܗ͠ɼEA = 1 P ͭ·Γɼະ AC ͷঢ়ଶ͔Β AC ͢Δ·Ͱʹඞཁͳճ਺ͷظ଴஋͸ 1 P = 2M (͜ͷʮग़Δ·Ͱࢼߦ͢Δʯظ଴஋͸Α͘ग़͖ͯ·͢) tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 20 / 54
  19. HSI 1 ճͷఏग़Ͱ͔͔Δ࣌ؒ͸؆୯ʹ෼͔Δ M έʔεͰ 1900msɼN − M έʔεͰ 100ms

    → 1900M + 100(N − M) = 100N + 1800M ࣮ߦ࣌ؒ૯࿨ͷظ଴஋ = ࣮ߦ࣌ؒ × ճ਺ͷظ଴஋ ղ౴ίʔυ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 21 / 54
  20. Τϥτεςωεͷ͟Δ ໰୊ (Τϥτεςωεͷ͟Δ) 2 ͔Β N ·Ͱͷ੔਺͔ΒͳΔϦετ A ͱɼۭͷϦετ B

    ͕͋Δɽ Ϧετ A ͕ۭʹͳΔ·Ͱɼ ʮϦετ A ಺ͷ࠷খͷཁૉ x ΛϦετ B ʹҠಈ ͤ͞ɼϦετ A ͔Β 2x, 3x, 4x, . . . ΛϦετ A ͔Β࡟আ͢Δʯͱ͍͏ૢ࡞ Λߦ͏ɽ ֤ૢ࡞ͰԼઢ෦ͷॲཧ͕ߦΘΕΔ֬཰͕ p Ͱ͋Δͱ͖ɼ࠷ऴతʹϦετ B ʹ͋Δཁૉ਺ͷظ଴஋ΛٻΊΑɽ 2 ≤ N ≤ 106 0 ≤ p ≤ 1 (খ਺) ग़య: yukicoder No.144 Link αϯϓϧ ೖྗ 1: JT1 ग़ྗ 1: JT1 ೖྗ 2: JT1 ग़ྗ 2: JT1 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 23 / 54
  21. Τϥτεςωεͷ͟Δ X(S) := ू߹ S ͷ͏ͪɼૉ਺ͱͯ͠ྻڍ͞ΕΔ਺ͷݸ਺ ٻΊ͍ͨ΋ͷ͸ E[X {2, .

    . . , N}] X {2, . . . , N} = X {2} + · · · + X {N} ظ଴஋ͷઢܗੑΑΓɼ E[X {2, . . . , N}] = E[X {2}] + · · · + E[X {N}] = P2 + · · · + PN ֤ཁૉʹ͍ͭͯɼϦετ B ʹҠ͞ΕΔ֬཰ΛٻΊͯ଍ͤ͹ྑ͍ʂ ͋Δཁૉ x ͕Ϧετ A ͔Βબ୒͞ΕͯϦετ B ʹҠ͞ΕΔͱɼx ͷഒ ਺͕શͯϦετ A ͔Βফ͑Δ ཁૉ x ͕Ϧετ B ʹҠ͞ΕΔΑ͏ʹੜ͖࢒ΔͨΊͷ৚݅ x ͷ໿਺͕શͯੜ͖࢒Δ͜ͱʂ ͜͏ͳΔͨΊʹ͸ɼx ͷ໿਺͕શͯબ୒͞Εͳ͍ඞཁ͕͋Δ ʮબ୒͞Εͳ͍ʯ͸ʮબ୒͞ΕΔʯͷ༨ࣄ৅ͳͷͰɼ֬཰͸ 1 − p x ͷ 1 Ҏ֎ͷ໿਺ͷ਺Λ d ͱ͢Δͱɼx ͕ੜ͖࢒Δ֬཰͸ (1 − p)d−1 ֤਺ࣈʹ͍ͭͯ໿਺͕͍ͭ͋͘Δ͔਺͑ͯɼ্Ͱड़΂ͨΑ͏ʹܭࢉ ΤϥτεςωεͬΆ͘΍Δͱ O(N log N) 1 + 1 2 + 1 3 + 1 4 + · · · ≈ log N tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 24 / 54
  22. τϦϓϧΧʔυίϯϓ ద੾ʹɾγϯϓϧʹঢ়ଶΛ؅ཧ͢Δ܇࿅ͱͳΔ໰୊Ͱ͢ ໰୊ (τϦϓϧΧʔυίϯϓ) N छྨͷΧʔυΛɼ֤छྨͱ΋࠷௿ 3 ຕͣͭूΊ͍ͨ ख࣋ͪͷΧʔυʹΑΒͣɼ 1

    ຕΧʔυΛങ͏ͱ֤छྨͱ΋ 1 N ͷ֬཰ ͰखʹೖΔ ॳΊʹͲͷछྨΛԿຕ͍࣋ͬͯΔ͔ͷ৘ใ͕༩͑ΒΕΔͷͰɼίϯϓ Ϧʔτ͢Δ·Ͱʹങ͏͜ͱʹͳΔΧʔυͷຕ਺ͷظ଴஋ΛٻΊΑ 1 ≤ N ≤ 100 i छྨ໨ͷΧʔυͷॴ࣋਺ 0 ≤ Ai ≤ 10 ग़య: yukicoder No.108 Link tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 26 / 54
  23. τϦϓϧΧʔυίϯϓ Χʔυͷछྨ͕ 100 छྨ΋͋Δ͠ɼ3 ຕूΊͳ͚Ε͹ͳΒͳ͍ ˠ ϏοτͰ؅ཧ͢Δͷ͸ແཧͦ͏ ΧʔυΛ۠ผͤͣɼ ʮk ຕ͍࣋ͬͯΔΧʔυ͕Կछྨ͋Δ͔ʯΛ؅ཧ͢

    ΔͱͲ͏ͳΔʁ k ͸ 0 ͔Β 3 ·Ͱͷ஋ΛऔΔ (3 Ҏ্͸શͯ 3 ʹ·ͱΊΔ) Χʔυͷछྨ਺͸Ұఆ ˠ ͲΕ͔ 1 ͭ͸Ҿ͚͹ग़ΔͷͰ 3 ௨ΓΛ֮͑Δ ֤ k ʹ͓͍ͯɼΧʔυͷछྨ਺͸ߴʑ 100 ͜ΕͰঢ়ଶ਺͕ O(N3) ʹͳͬͯɼͰ͖ͦ͏ʂ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 27 / 54
  24. τϦϓϧΧʔυίϯϓ Χʔυͷछྨ͕ 100 छྨ΋͋Δ͠ɼ3 ຕूΊͳ͚Ε͹ͳΒͳ͍ ˠ ϏοτͰ؅ཧ͢Δͷ͸ແཧͦ͏ ΧʔυΛ۠ผͤͣɼ ʮk ຕ͍࣋ͬͯΔΧʔυ͕Կछྨ͋Δ͔ʯΛ؅ཧ͢

    ΔͱͲ͏ͳΔʁ k ͸ 0 ͔Β 3 ·Ͱͷ஋ΛऔΔ (3 Ҏ্͸શͯ 3 ʹ·ͱΊΔ) Χʔυͷछྨ਺͸Ұఆ ˠ ͲΕ͔ 1 ͭ͸Ҿ͚͹ग़ΔͷͰ 3 ௨ΓΛ֮͑Δ ֤ k ʹ͓͍ͯɼΧʔυͷछྨ਺͸ߴʑ 100 ͜ΕͰঢ়ଶ਺͕ O(N3) ʹͳͬͯɼͰ͖ͦ͏ʂ ΑΓ۩ମతʹ͸ dp[X][Y ][Z] := 1 ຕҎ্͋ΔΧʔυ͕ X छྨɼ2 ຕ Ҏ্͋ΔΧʔυ͕ Y छྨɼ3 ຕҎ্͋ΔΧʔυ͕ Z छྨ͋Δঢ়ଶ͔ ΒίϯϓϦʔτ͢ΔͨΊʹඞཁͳճ਺ͷظ଴஋ 0 ຕ͍࣋ͬͯΔΧʔυͷछྨ਺͸ɼ ʮ1 ຕҎ্ʯͷ৘ใ͔Βܭࢉ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 27 / 54
  25. τϦϓϧΧʔυίϯϓ dp[X][Y ][Z] := 1 ຕҎ্͋ΔΧʔυ͕ X छྨɼ2 ຕҎ্͋ΔΧʔυ ͕

    Y छྨɼ3 ຕҎ্͋ΔΧʔυ͕ Z छྨ͋Δঢ়ଶ͔ΒίϯϓϦʔτ ͢ΔͨΊʹඞཁͳճ਺ͷظ଴஋ ͜ΕΛ (X, Y, Z) ͱུه͢Δͱ͖ɼঢ়ଶભҠ͸ҎԼͷΑ͏ʹͳΔ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 28 / 54
  26. τϦϓϧΧʔυίϯϓ dp[X][Y ][Z] := 1 ຕҎ্͋ΔΧʔυ͕ X छྨɼ2 ຕҎ্͋ΔΧʔυ ͕

    Y छྨɼ3 ຕҎ্͋ΔΧʔυ͕ Z छྨ͋Δঢ়ଶ͔ΒίϯϓϦʔτ ͢ΔͨΊʹඞཁͳճ਺ͷظ଴஋ ͜ΕΛ (X, Y, Z) ͱུه͢Δͱ͖ɼঢ়ଶભҠ͸ҎԼͷΑ͏ʹͳΔ ݱࡏ 0 ຕ͍࣋ͬͯΔΧʔυΛҾ͍ͨ ˠ 1 ຕ͍࣋ͬͯΔछྨ਺͕૿͑Δ ͷͰ (X + 1, Y, Z) ʹભҠ ݱࡏ 1 ຕ͍࣋ͬͯΔΧʔυΛҾ͍ͨ ˠ 2 ຕ͍࣋ͬͯΔछྨ਺͕૿͑Δ ͷͰ (X, Y + 1, Z) ʹભҠ ݱࡏ 2 ຕ͍࣋ͬͯΔΧʔυΛҾ͍ͨ ˠ 3 ຕ͍࣋ͬͯΔछྨ਺͕૿͑Δ ͷͰ (X, Y, Z + 1) ʹભҠ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 28 / 54
  27. τϦϓϧΧʔυίϯϓ dp[X][Y ][Z] := 1 ຕҎ্͋ΔΧʔυ͕ X छྨɼ2 ຕҎ্͋ΔΧʔυ ͕

    Y छྨɼ3 ຕҎ্͋ΔΧʔυ͕ Z छྨ͋Δঢ়ଶ͔ΒίϯϓϦʔτ ͢ΔͨΊʹඞཁͳճ਺ͷظ଴஋ ͜ΕΛ (X, Y, Z) ͱུه͢Δͱ͖ɼঢ়ଶભҠ͸ҎԼͷΑ͏ʹͳΔ ݱࡏ 0 ຕ͍࣋ͬͯΔΧʔυΛҾ͍ͨ ˠ 1 ຕ͍࣋ͬͯΔछྨ਺͕૿͑Δ ͷͰ (X + 1, Y, Z) ʹભҠ ݱࡏ 1 ຕ͍࣋ͬͯΔΧʔυΛҾ͍ͨ ˠ 2 ຕ͍࣋ͬͯΔछྨ਺͕૿͑Δ ͷͰ (X, Y + 1, Z) ʹભҠ ݱࡏ 2 ຕ͍࣋ͬͯΔΧʔυΛҾ͍ͨ ˠ 3 ຕ͍࣋ͬͯΔछྨ਺͕૿͑Δ ͷͰ (X, Y, Z + 1) ʹભҠ (N, N, N) ͰίϯϓϦʔτɼ͜ͷঢ়ଶʹ͓͚Δظ଴஋͸ 0 ࠷ॳͷঢ়ଶ͔ΒϝϞԽ࠶ؼͰ౴͑Λग़ͤ͹ྑ͍ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 28 / 54
  28. ίΠϯ ద੾ʹɾγϯϓϧʹঢ়ଶΛ؅ཧ͢Δ܇࿅ͱͳΔ໰୊Ͱ͢ ໰୊ (ίΠϯ) ཪද͕۠ผͰ͖ɼ1 ຕʹ͖ͭ 1 ͭਖ਼ͷ੔਺͕ॻ͔Εͨ N ຕͷίΠϯ

    (ίΠϯ͸ͦΕͧΕ۠ผͰ͖Δ) ͜ΕΒͷίΠϯΛແ࡞ҝʹ (N! ௨Γͷ૊Έ߹Θ͕ͤ౳͘͠ग़ΔΑ͏ ʹ) Ұྻʹฒ΂ɼҎԼΛ࣮ߦ 1 ͢΂ͯͷίΠϯΛද޲͖ʹ͢Δ 2 ࠨ୺ͷίΠϯ͔Βॱʹɼݱࡏݟ͍ͯΔίΠϯΑΓӈଆʹ͋ΔίΠϯͷ͏ ͪɼݱࡏݟ͍ͯΔίΠϯʹॻ͔Ε͍ͯΔ੔਺ͷഒ਺͕ॻ͔Ε͍ͯΔίΠ ϯશͯͷදཪΛͻͬ͘Γฦ͢ ͜ͷૢ࡞Λ࣮ߦͨ͋͠ͱʹɼදΛ޲͍͍ͯΔίΠϯͷຕ਺ͷظ଴஋Λ ٻΊΑ 1 ≤ N ≤ 100 i ൪໨ͷίΠϯʹॻ͔Εͨ੔਺ 1 ≤ Ci ≤ 109 ग़య: AtCoder Beginner Contest 008: C Link tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 30 / 54
  29. ίΠϯ શ෦ͷ৔߹Λࢼ͢ͷ͸΋ͪΖΜແཧ i ൪໨ͷίΠϯΛ Xi ɼू߹ S ͷ͏ͪදʹͳ͍ͬͯΔຕ਺Λ C(S) ͱ

    ͢Δͱ͖ɼE[C(S)] := ʮS ಺ͷίΠϯͰɼදʹͳΔຕ਺ͷظ଴஋ʯ͕ ٻΊΒΕΕ͹ྑ͍ ظ଴஋ͷઢܗੑΑΓɼ E[C {X1, . . . , XN }] = E[C {X1 } + · · · + C {XN }] = E[C {X1 }] + · · · + E[C {XN }] = PX1 + · · · + PXN ͱมܗͰ͖Δ Αͬͯɼ ʮi ൪໨ͷίΠϯ͕දʹͳΔ֬཰ʯΛٻΊͯɼͦΕΛ଍͋͠Θ ͤͨ΋ͷ͕౴͑ʂ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 31 / 54
  30. ίΠϯ ͍·஫໨͍ͯ͠ΔίΠϯͱɼͦͷ໿਺Λ 1 ྻʹฒ΂Δ͜ͱΛߟ͑Δ (આ໌ͷͨΊશ෦Ͱ M ຕ͋Δͱ͢Δ) ஫໨͍ͯ͠ΔίΠϯ͕Ͳ͜ʹདྷΑ͏ͱ΋ɼͦͷଞ M −

    1 ຕͷίΠϯͷ ฒͼํ͸ (M − 1)! ௨Γ ˠ ஫໨͍ͯ͠ΔίΠϯ͕ࠨ͔ΒԿ൪໨ʹདྷΔ ͔͸౳֬཰ʂ Αͬͯɼ஫໨͍ͯ͠ΔίΠϯ͕දʹͳΔ֬཰͕Θ͔Δ M ͕ۮ਺ͷͱ͖ɼ1 2 M ͕ح਺ͷͱ͖ɼM+1 2M ͜ΕΛ଍͠߹ΘͤΕ͹ɼऴΘΓʂ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 33 / 54
  31. RareItems ໰୊ (RareItems) N ݸͷΞΠςϜ͕ग़Δ͕͋͘͡Δɽi ൪໨ͷΞΠςϜ͕ग़Δස౓͸ fi Ͱ͋ Δ (͢ͳΘͪɼi

    ൪໨͕ग़Δ֬཰͸ fi ∑ N k=1 fk )ɽN ݸ͢΂ͯͷΞΠςϜΛग़ ͢·Ͱʹඞཁͳɼ͘͡ΛҾ͘ճ਺ͷظ଴஋ΛٻΊΑɽ 1 ≤ N ≤ 20 1 ≤ fi ≤ 1000 ग़య: TopCoder SRM 729 Div2 Hard Link αϯϓϧ ೖྗ 1: JT1 ग़ྗ 1: JT1 ೖྗ 2: JT1 ग़ྗ 2: JT1 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 36 / 54
  32. RareItems ࣋ͭ΂͖ঢ়ଶ ˠ ES := طʹ͍࣋ͬͯΔΞΠςϜͷू߹͕ S Ͱɼͦͷ ঢ়ଶ͔Βϑϧίϯϓ͢Δ·Ͱʹඞཁͳճ਺ͷظ଴஋ ू߹Λ؅ཧ

    ˠ bit DP Ͱղ͚Δʂ ྫ: ΞΠςϜ͸શ 5 छྨɼݱࡏ 1 ൪໨ͱ 4 ൪໨Λॴ࣋ ˠ JT1 ͱදݱ ͘͡ΛҾ͍ͨΒɼ ʮ·ͩ࣋ͬͯͳ͍΋ͷ͕ग़Δʯ͔ʮ΋͏͍࣋ͬͯΔ΋ ͷ͕ग़ΔʯͷͲͪΒ͔ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 37 / 54
  33. RareItems ݱࡏͷॴ࣋ΞΠςϜू߹ ˠ Sɼະॴ࣋ΞΠςϜ ˠ x ·͍ͩ࣋ͬͯͳ͍ͷͰ S ∩ {x}

    = ∅ ະॴ࣋ΞΠςϜΛҾ֬͘཰͸ʁ ·͍ͩ࣋ͬͯͳ͍ΞΠςϜͷස౓࿨ શͯͷΞΠςϜͷස౓࿨ ͜ͷ֬཰Λ p ͱ͓͘ͱɼઌ΄Ͳͷ໰୊ͷ஌ࣝΛ༻͍ͯɼʮະॴ࣋ΞΠς Ϝͷ͏ͪͲΕ͔ 1 ͕ͭग़Δ·Ͱඞཁͳճ਺ͷظ଴஋ʯ͸ 1 p Ͱ͋Δ͜ͱ ͕Θ͔Δʂ ະॴ࣋ΞΠςϜΛҾ͍ͨͱ͖ɼͦͷΞΠςϜ͕ x Ͱ͋Δ֬཰͸ʁ ͜Ε͸·͘͞͠ʮ৚݅෇͖֬཰ʯʂ fx ·͍ͩ࣋ͬͯͳ͍ΞΠςϜͷස౓࿨ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 38 / 54
  34. Ϙʔϧ ໰୊ (Ϙʔϧ) N ݸͷΞΠςϜ͕Ұ௚ઢ্ʹฒΜͰ͍Δɽi ൪໨ͷ΋ͷ͸࠲ඪ xi ʹஔ͔Ε ͍ͯΔɽ͢͵͚܅͕࠲ඪ x

    ͷ఺Λ໨ࢦͯ͠ϘʔϧΛ౤͛Δͱɼ x − 1, x, x + 1 ͷ͏ͪͷ͍ͣΕ͔ʹ 1 3 ͷ֬཰ͰඈΜͰ͍͖ɼͦ͜ʹΞΠς Ϝ͕͋ͬͨ৔߹͸౗ΕΔɽ࠷దͳઓུͰϘʔϧΛ౤͛ͨͱ͖ɼΞΠςϜΛ શͯ౗͢ͷʹඞཁͳϘʔϧΛ౤͛Δճ਺ͷظ଴஋ΛٻΊΑɽ 1 ≤ N ≤ 16 0 ≤ xi ≤ 15, xi are pairwise distinct. ग़య: Typical DP Contest: J Link αϯϓϧ ೖྗ 1: JT1 ग़ྗ 1: JT1 ೖྗ 2: JT1 ग़ྗ 2: JT1 tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 41 / 54
  35. Ϙʔϧ N ͕খ͍͞ͷͰɼઌ΄Ͳͱಉ༷ʹ bit Ͱ؅ཧ͢Ε͹ྑͦ͞͏ dp[S] := ·ͩ౗Ε͍ͯͳ͍ΞΠςϜͷू߹͕ S Ͱ͋Δͱ͖ɼͦͷঢ়ଶ

    ͔Βશͯ౗͢·Ͱʹඞཁͳճ਺ͷظ଴஋ dp[∅] = 0 Ͳ͜ʹϘʔϧΛ౤͛Δͷ͕࠷ద͔ʁ ˠ ظ଴஋͕࠷খʹͳΔͱ͜Ζʹ౤ ͛Δͷ͕࠷దʂ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 42 / 54
  36. Ϙʔϧ ͋Δ࠲ඪ x ΛΊ͕͚ͯϘʔϧΛ౤͛ͯΈΑ͏ x − 1, x, x +

    1 ͍ͣΕʹ΋ΞΠςϜ͕ͳ͍৔߹͸ແବͳͷͰߟ͑ͳ͍ x − 1, x, x + 1 ʹΞΠςϜ͕ k ݸ (1 ≤ k ≤ 3) ͋Δ৔߹ɼ ͲΕ͔ͷΞΠςϜʹ͋ͨΔ·Ͱ౤͛Δͱ͖ɼͦͷճ਺ͷظ଴஋ ˠ 3 k ճ ʮͲΕ͔ʹ౰ͨΔʯͱ͍͏৚݅ԼͰɼ͋ΔΞΠςϜ a ʹ͋ͨΔ֬཰ ˠ 1 k Αͬͯɼ࠲ඪ x Ί͕͚ͯ౤͛Δͱ͖ͷظ଴஋͸ɼ dp[S]x = a dp[S ∪ {a}] + 3 k × 1 k (2) ͜ΕΛશͯͷ x ʹ͍ͭͯࢼͨ࣌͠ͷ࠷খ஋Λ͓͚֮͑ͯ͹ྑ͍ x = 0, 15 ͸୺ͳͷͰࢼ͞ͳͯ͘΋େৎ෉ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 43 / 54
  37. ΧʔυήʔϜ (Hard) ໰୊ (ΧʔυήʔϜ (Hard)) ॳظঢ়ଶ ˠ A ܅ͷΧʔυ A1,

    . . . , AN ɼB ܅ͷΧʔυ B1, . . . , BN ֤Χʔυʹ͸਺ࣈ͕ॻ͔Ε͍ͯΔ ॳظঢ়ଶ͔ΒɼN ࢼ߹͔ΒͳΔήʔϜΛߦ͏ AɼB ܅ͱ΋ʹࣗ෼ͷखࡳ͔ΒΧʔυΛ 1 ຕग़͢ ॻ͔Ε͍ͯΔ੔਺͕େ͖͍΄͏͕ͦͷࢼ߹ͷউऀɽউऀ͸ 2 ຕͷΧʔυ ʹॻ͔Εͨ੔਺ͷ࿨Λಘ఺ͱͯ͠ಘΔ A ܅͸࢖͑ΔΧʔυ͕ 2 ຕҎ্͋Ε͹ͦͷதͰ΋ͬͱ΋খ͍͞੔਺͕ॻ ͔ΕͨΧʔυΛ֬཰ PA Ͱग़͠ɼͦͷଞΛબͿ֬཰͸શͯ౳͍͠ɽB ܅ ʹରͯ͠΋֬཰ PB Ͱಉ༷ A ܅͕ಘΒΕΔ߹ܭಘ఺ͷظ଴஋ΛٻΊΑ 1 ≤ N ≤ 20 0.500 ≤ PA , PB ≤ 0.999 1 ≤ A1 , . . . AN , B1 , . . . , BN ≤ 1000ɼ͜ΕΒͷ਺ࣈ͸શͯ૬ҟͳΔ ग़య: yukicoder No. 174 Link tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 46 / 54
  38. ΧʔυήʔϜ (Hard) dp[SA][SB] := A ܅ͷ͍࣋ͬͯΔΧʔυͷू߹͕ SA ͰɼB ܅ͷ࣋ͬ ͍ͯΔΧʔυͷू߹͕

    SB Ͱ͋Δͱ͖ͷɼA ܅͕ಘΒΕΔ߹ܭಘ఺ͷ ظ଴஋ ͔͠͠ɼ͜ΕͰ͸ O(22N × N2) ͱ͔ʹͳΔͷͰແཧʂ A ܅ɼB ܅͕ΧʔυΛग़͢نଇ͸ʮࣗ෼ͷखࡳͷঢ়ଶʯʹͷΈґଘ (૬ खͷঢ়ଶ͸ؔ܎ͳ͍) ಠཱʹߟ͑Δͱ͏·͘ߦ͖ͦ͏ʂ dp[SX] := X ܅ͷ͍࣋ͬͯΔΧʔυͷू߹͕ SX ʹͳΔ֬཰ (Կࢼ߹ ໨͔͸Ϗοτͷཱ͍ͬͯΔ਺͔ΒܭࢉՄೳͳͷͰɼࠓճ͸ DP ͷఴࣈ ʹ͠ͳͯ͘΋Α͍) ͜ͷ DP ͔Βɼ ʮ୭͕Կࢼ߹໨ʹͲͷΧʔυΛग़͔͢ʯͷ֬཰Λશ෦ٻ ΊΑ͏ʂ ͋ͱ͸֤ࢼ߹ʹ͍ͭͯɼͲͷΧʔυΛग़͔ͨ͠Λશ௨Γࢼ͠ɼͦͷ֬ ཰͔Βظ଴஋Λܭࢉ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 47 / 54
  39. ͤΜ΂͍ ໰୊ (ͤΜ΂͍) 1 ʙ N ͷ൪߸ͷ͍ͭͨ N ຕͷͤΜ΂͍ΛϥϯμϜʹ (N!

    ௨Γ͔Β౳ ֬཰) 1 ຕͣͭ഑෍ γΧ͸ K ຕ·Ͱ͔͠৯΂ΒΕͳ͍͕ɼ൪߸ N ͷͤΜ΂͍Λ৯΂͍ͨ i ຕ໨͕഑ΒΕΔͱ͖ɼγΧ͸ͦΕΛ৯΂Δ͔Ͳ͏͔Λͦͷ࣌఺ͰબͿ ͤΜ΂͍Λݟͯ΋ͦͷ൪߸͸Θ͔Βͳ͍͕ɼલʹݟͨ (৯΂ͨ΋ͷؚ Ή) શͯͷͤΜ΂͍ͱେখൺֱͰ͖Δ ࠷దͳઓུΛऔͬͨͱ͖ɼγΧ͕൪߸ N ͷͤΜ΂͍Λ৯΂ΒΕΔ֬཰ ΛٻΊΑ 1 ≤ K ≤ N ≤ 1000 ग़య: AtCoder Regular Contest 055: B Link tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 50 / 54
  40. ͤΜ΂͍ i ຕ໨ (0-indexed) ʹ഑ΒΕΔͤΜ΂͍ʹ͍ͭͯߟ͑Α͏ i ຕ໨ʹ഑ΒΕͨͤΜ΂͍͕ࠓ·ͰͰ࠷େͰͳ͚Ε͹ɼऔΒͳ͍΄͏͕ ྑ͍ (໌Β͔ʹ N

    Ͱͳ͍ͨΊ) ࠓ·ͰͰ࠷େͳΒɼऔΔ͔औΒͳ͍͔ͷͲͪΒ͔ (࠷େ஋Λ࠾༻) i ຕ໨͕ N Ͱ͋Δ֬཰ p = 1 N−i i ຕ໨͕ N Ͱͳ͍͕ɼࠓ·ͰͰ࠷େͰ͋Δ֬཰ q = 1−p i+1 N Ͱ͋Δ֬཰ͱɼաڈ࠷ߴͰ͋Δ֬཰͕ಠཱͰ͸ͳ͍͜ͱʹ஫ҙʂʂ tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 51 / 54
  41. ͤΜ΂͍ dp[i][k] := i ຕ໨·Ͱ഑ΒΕɼࠓ·Ͱʹ k ຕ৯΂ͨঢ়ଶ͔Βɼ൪߸͕ N ͷͤΜ΂͍Λ৯΂ΒΕΔ֬཰ p

    = 1 N−i , q = 1−p i+1 ͱ͓͘ͱɼաڈ࠷ߴͰͳ͍֬཰ r ͸ r = 1 − p − q dp[i][k] = r × dp[i + 1][k] + max      p + q × dp[i + 1][k + 1] ͤΜ΂͍ΛऔΔ , q × dp[i + 1][k] ͤΜ΂͍ΛऔΒͳ͍      tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 52 / 54
  42. ࿅श໰୊ू ྨ୊ͳͲͳͲɽશ෦ղ͍ͯ֬཰ʹڧ͘ͳΖ͏ʂʂ (΋ͪΖΜίϨҎ֎ʹ΋ଟ਺͋Γ·͢) (ී௨) yukicoder No.58: ΠΧαϚͳαΠίϩ Link (ී௨) AOJ

    1277: Minimal Backgammon Link (ී௨) yukicoder No.75: ճ਺ͷظ଴஋ͷ໰୊ Link ग़ͨ໨ͷ࿨ (ظ଴஋ฤ) ͱઃఆ͕ࣅ͍ͯ·͕͢ɼͪ͜Β͸࿨͕ K Λ௒͑ Δͱ߹ܭΛ 0 ʹ໭͠ɼ࿨͕ͪΐ͏Ͳ K ʹͳΔ·Ͱ܁Γฦ͠·͢ɽ ੍໿͕େ͖͘ͳͬͨόʔδϣϯ΋͋Γ·͢ (yukicoder No.301: αΠίϩͰ֬཰໰୊ (1) Link ) (೉) yukicoder No.210: ୳͠෺͸Ͳ͜Ͱ͔͢ʁ Link ࠓճ঺հͰ͖ͳ͔ͬͨΞϓϩʔνͰ͢ɽ੍໿ΛΑ͘ݟͯΈ·͠ΐ͏ɽ (೉) AtCoder Regular Contest 016 C: ιʔγϟϧήʔϜ Link RareItems ͷྨ୊Ͱ͢ɽͪ͜Β͸͕͘͡ෳ਺छྨ͋Γ·͢ɽ (೉) yukicoder No.155: ੜ์ૹͱ BGM Link ঢ়ଶΛ 1 ͭר͖໭͋͢ͷ DP ͷ࿅शʹ΋ͳΓ·͢ (ൃలత಺༰) tsutaj (Hokkaido Univ.) ֬཰ DP ΛۃΊΑ͏ February 20, 2018 54 / 54