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

数学未履修から始める競プロチュートリアル

zk-phi
December 22, 2019

 数学未履修から始める競プロチュートリアル

身内でやった勉強会でやったチュートリアルです。競技プログラミングの遊び方、基本的なアルゴリズムなどを、なるべく数学や情報工学の専門用語を排除しながら説明してみました。すべてを「使いこなせれば」ABC D 完くらいまでは狙えると思います。

zk-phi

December 22, 2019
Tweet

More Decks by zk-phi

Other Decks in Programming

Transcript

  1. ڝϓϩνϡʔτϦΞϧ
    ਺ֶະཤम͔Β࢝ΊΔ
    ![LQIJ

    View Slide

  2. ڝϓϩ JTԿ

    View Slide

  3. ڝϓϩ JTԿ
    ɾ࢓༷Λຬͨ͢ޮ཰ͷ͍͍ϓϩάϥϜΛ଎͘ॻ͘ωτή

    View Slide

  4. ڝϓϩ JTԿ
    ɾ࢓༷Λຬͨ͢ޮ཰ͷ͍͍ϓϩάϥϜΛ଎͘ॻ͘ωτή
    ɾΑΓૣ͘ɺόάͷͳ͍ϓϩάϥϜఏग़Ͱ͖ͨํ͕͑Β͍
    ɾόά͕ݟ͔ͭͬͨΒϖφϧςΟˍ΍Γͳ͓͠ 8"

    View Slide

  5. ڝϓϩ JTԿ
    ɾ࢓༷Λຬͨ͢ޮ཰ͷ͍͍ϓϩάϥϜΛ଎͘ॻ͘ωτή
    ɾΑΓૣ͘ɺόάͷͳ͍ϓϩάϥϜఏग़Ͱ͖ͨํ͕͑Β͍
    ɾόά͕ݟ͔ͭͬͨΒϖφϧςΟˍ΍Γͳ͓͠ 8"

    ɾయܕςΫ ߟ͑ํΛ͍͔ͭ͘ɺͳΔ΂͘΍͘͞͠঺հ

    View Slide

  6. ೖग़ྗɾ৚݅෼ذ "d

    View Slide

  7. ೖग़ྗɾ৚݅෼ذ
    ɾ௒؆୯ͳ໰୊ΛͱΓ͋͛ͯɺڝϓϩͷܗࣜΛ֬ೝ

    View Slide

  8. "#$"#MBDLKBDL վ

    ɾ̏ݸͷ੔਺ " " "͕༩͑ΒΕΔ
    ɾ߹ܭ͕ Ҏ্ͳΒ ACVTUAɺ͞΋ͳ͘͹ͦͷ߹ܭΛදࣔ

    View Slide

  9. # 一行読み込んで、空白でぶった切る
    a1, a2, a3 = input().split()
    # 整数 (int) に変換して足し算
    sum = int(a1) + int(a2) + int(a3)
    if sum >=22:
    print(“bust”)
    else:
    print(sum)
    // scanf, printf を使うのに必要
    #include
    int main (void) {
    int a1, a2, a3, sum;
    // scanf は int への変換も込み
    scanf(“%d %d %d”, &a1, &a2, &a3);
    if ((sum = a1 + a2 + a3) >= 22) {
    printf(“bust¥n”);
    } else {
    printf(“%d¥n”, sum);
    }
    }
    1ZUIPOͷྫ
    $ͷྫ

    View Slide

  10. ೖग़ྗɾ৚݅෼ذ
    ɾʮ੔਺Λಡࠐʯʮදࣔʯ͕Ͱ͖Ε͹ͱΓ͋͑ͣؤுΕΔ

    View Slide

  11. ϧʔϓɾશ୳ࡧ #d

    View Slide

  12. ϧʔϓɾશ୳ࡧ
    ɾ৚݅Λຬͨ͢ʓʓΛ୳ͤ ʹ ୳ࡧ໰୊
    ɾҰ൪؆୯ͳͷ͸શ୳ࡧʢ૯౰ͨΓʣ

    View Slide

  13. "#$#lz
    ɾ੔਺ /͕༩͑ΒΕΔ
    ɾܻ̍ͷ਺ͷੵʹͳ͍ͬͯͨΒ l:FTzɺ͞΋ͳ͘͹ l/PzΛදࣔ

    View Slide

  14. "#$#lz
    ɾ੔਺ /͕༩͑ΒΕΔ
    ɾܻ̍ͷ਺ͷੵʹͳ͍ͬͯͨΒ l:FTzɺ͞΋ͳ͘͹ l/PzΛදࣔ
    ղ๏
    ɾY͔Β Y·Ͱશ෦ࢼͯ͠ɺ /ʹҰக͢Δ΋ͷ͕߹͑͹ l:FTz

    View Slide

  15. # 一行読み込んで整数に変換
    n = int(input())
    # ループで全通り実験してみる
    for i in range(1, 10):
    for j in range(1, 10):
    if i * j == n:
    # 一致したら “Yes”と言って終わり
    print(“Yes”);
    exit()
    # 見つからなかったので No
    print(“No”)
    #include
    int main (void) {
    int n, i, j;
    scanf(“%d”, &n);
    for (i = 0; i < 10; i++)
    for (j = 0; j < 10; j++)
    if (i * j == n) {
    printf(“Yes¥n”);
    return 0;
    }
    printf(“No¥n”);
    }
    1ZUIPOͷྫ
    $ͷྫ

    View Slide

  16. શ୳ࡧ ͻͱ޻෉ $d

    View Slide

  17. શ୳ࡧ ͻͱ޻෉
    ɾ࣮͸͖ͬ͞ͷϓϩάϥϜ͸΋ͬͱޮ཰ԽͰ͖Δ

    View Slide

  18. શ୳ࡧ ͻͱ޻෉
    ɾ࣮͸͖ͬ͞ͷϓϩάϥϜ͸΋ͬͱޮ཰ԽͰ͖Δ
    ɾʮ͔͚Δ਺ʯ͕ܾ·Ε͹ʮ͔͚ΒΕΔ਺ʯ͸ࣗಈͰܾ·Δ
    ˠ ೋॏϧʔϓʹ͢Δඞཁ͸ͳ͔ͬͨ

    View Slide

  19. "#$#lz
    ɾ੔਺ /͕༩͑ΒΕΔ
    ɾܻ̍ͷ਺ͷੵʹͳ͍ͬͯͨΒ l:FTzɺ͞΋ͳ͘͹ l/PzΛදࣔ
    ผղ
    ɾ͔Β ͷதʹɺҎԼͷ৚݅Λຬͨ͢΋ͷͳ͍͔ௐ΂Ε͹ PL
    ˎ /ΛׂΓ੾Δ͜ͱ͕Ͱ͖Δ
    ˎ /ΛׂΔͱܻ̍ʹͳΔ

    View Slide

  20. n = int(input())
    for i in range(1, 10):
    if n % i == 0 and n / i < 10:
    print(“Yes”);
    exit()
    print(“No”)
    #include
    int main (void) {
    int n, i;
    scanf(“%d”, &n);
    for (i = 1; i < 10; i++)
    if (n % i == 0 && n / i < 10) {
    printf(“Yes¥n”);
    return 0;
    }
    printf(“No¥n”);
    }
    1ZUIPOͷྫ
    $ͷྫ

    View Slide

  21. શ୳ࡧ ͻͱ޻෉
    ɾ૯౰ͨΓͷൣғ͕ ?௨Γ͔Β ௨Γʹݮͬͨ ޮ཰Խ

    View Slide

  22. શ୳ࡧ ͻͱ޻෉
    ɾ૯౰ͨΓͷൣғ͕ ?௨Γ͔Β ௨Γʹݮͬͨ ޮ཰Խ

    ɾຊ൪Ͱ͸ʮͻͱ޻෉ʯඞਢͷ೉໰΋ग़Δ
    ΋͜͠ͷ໰୊͕ʮҰԯܻ YҰԯܻʯͩͬͨΒʜʁ

    View Slide

  23. ೋ෼୳ࡧ $d

    View Slide

  24. ೋ෼୳ࡧ
    ɾ৚݅Λຬͨ͢ ຬͨ͞ͳ͍ͷڥքΛߴ଎Ͱݟ͚ͭΔςΫ

    View Slide

  25. "#$$#VZBO*OUFHFS վ

    ɾd?·Ͱͷ੔਺Λച͍ͬͯΔ͓ళ͕͋Δ
    ɾ੔਺ /ͷ஋ஈ͸ʮ/㲋/ʯ ੾Γ্͛

    ྫ͸ ԁ

    ɾॴ࣋ۚ Y͕༩͑ΒΕΔͷͰɺߪೖͰ͖Δ࠷େͷ੔਺Λݟ͚ͭΖ

    View Slide

  26. "#$$#VZBO*OUFHFS վ

    ɾd?·Ͱͷ੔਺Λച͍ͬͯΔ͓ళ͕͋Δ
    ɾ੔਺ /ͷ஋ஈ͸ʮ/㲋/ʯ ੾Γ্͛

    ྫ͸ ԁ

    ɾॴ࣋ۚ Y͕༩͑ΒΕΔͷͰɺߪೖͰ͖Δ࠷େͷ੔਺Λݟ͚ͭΖ
    ߟ࡯
    ɾ࠷େͰ ?·Ͱങ͑ΔͷͰ૯౰ͨΓ͸͔͔࣌ؒΓͦ͏ʜ

    View Slide

  27. ೋ෼୳ࡧ
    ɾ৚݅Λຬͨ͢ ຬͨ͞ͳ͍ͷڥքΛߴ଎Ͱݟ͚ͭΔςΫ

    View Slide

  28. ೋ෼୳ࡧ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ ?
    ˡ
    ˡ ͕͜͜஌Γ͍ͨ

    View Slide

  29. ೋ෼୳ࡧ
    ˡ ?
    ങ͑ͳ͍
    ങ͑Δ
    ˡ ?
    ˡ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ

    View Slide

  30. ೋ෼୳ࡧ
    ˡ ?
    ങ͑Δ
    ˡ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ങ͑ͳ͍

    View Slide

  31. ೋ෼୳ࡧ
    ˡ ?
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ˡ ?

    View Slide

  32. ೋ෼୳ࡧ
    ˡ ?
    ങ͑Δ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ˡ ?
    ങ͑ͳ͍

    View Slide

  33. ೋ෼୳ࡧ
    ˡ ?
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ˡ ?
    ˡ ?
    ങ͑Δ
    ങ͑ͳ͍

    View Slide

  34. ೋ෼୳ࡧ
    ˡ ?
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ˡ ?
    ങ͑ͳ͍

    View Slide

  35. ೋ෼୳ࡧ
    ˡ ?
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ˡ ?
    ˡ ?
    ങ͑ͳ͍

    View Slide

  36. ೋ෼୳ࡧ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ˡ ?
    ˡ ?
    ങ͑ͳ͍

    View Slide

  37. ೋ෼୳ࡧ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ɾ܁Γฦ͍ͯ͘͠ͱൣғ͕ AAʹͳΔ
    ˡ Y
    ˡ Y

    View Slide

  38. ೋ෼୳ࡧ
    ɾͪΐ͏ͲυਅΜத͕ങ͑Δ͔νΣοΫ
    ˠ ൣғΛ൒෼ʹߜΓࠐΊΔ
    ɾ܁Γฦ͍ͯ͘͠ͱൣғ͕ AAʹͳΔ
    ˠ ্͕ʮങ͑ͳ͍࠷খʯ
    ˠ Լ͕ʮങ͑Δ࠷େʯʹ౴͑
    ˡ Y
    ˡ Y

    View Slide

  39. import math
    x = int(input())
    bottom = 0 // 絶対買える
    top = x // 絶対買えない
    while top – bottom > 1:
    med = (top + bottom) // 2
    if med + math.sqrt(med) > x:
    top = med
    else:
    bottom = med
    print (bottom)
    #include
    #include
    int main (void) {
    int x, bottom, top;
    scanf(“%d”, &x);
    top = x, bottom = 0;
    while (top – bottom > 0) {
    int med = (top + bottom) / 2;
    if (med + sqrt(med) > x)
    top = med;
    else
    bottom = med;
    }
    printf(“%d¥n”, bottom);
    }
    1ZUIPOͷྫ $ͷྫ

    View Slide

  40. ΞϧΰϦζϜͷʮ଎͞ʯ

    View Slide

  41. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾೋ෼୳ࡧ͸શ୳ࡧΑΓͲΕ͘Β͍଎͍ͷʁ

    View Slide

  42. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ

    View Slide

  43. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ

    View Slide

  44. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ˡ

    View Slide

  45. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ˡ

    View Slide

  46. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ˡ

    View Slide

  47. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ˡ

    View Slide

  48. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ˡ
    ɾೋ෼୳ࡧɺTUFQͰऴྃ

    View Slide

  49. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ɾೋ෼୳ࡧɺTUFQͰऴྃ
    ˡ

    View Slide

  50. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ɾೋ෼୳ࡧɺTUFQͰऴྃ
    ˡ

    View Slide

  51. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ɾೋ෼୳ࡧɺTUFQͰऴྃ
    ˡ

    View Slide

  52. ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑ͳ͍
    ങ͑Δ
    ˡ
    ˡ
    ˡ
    ɾೋ෼୳ࡧɺTUFQͰऴྃ
    ˡ

    View Slide

  53. ҎԼུ
    ΞϧΰϦζϜͷʮ଎͞ʯ
    ങ͑Δ
    ˡ
    ˡ
    ɾೋ෼୳ࡧɺTUFQͰऴྃ
    ɾશ୳ࡧɺTUFQඞཁ
    ˡ
    ˡ

    View Slide

  54. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾೋ෼୳ࡧ͕͛͢ʔ଎͍͜ͱ͸ʮͳΜͱͳ͘ʯΘ͔Δ

    View Slide

  55. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾೋ෼୳ࡧ͕͛͢ʔ଎͍͜ͱ͸ʮͳΜͱͳ͘ʯΘ͔Δ
    ɾʮͳΜͱͳ͘ʯ͡Όͳͪ͘ΌΜͱൺ΂ͯΈΑ͏

    View Slide

  56. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾશ୳ࡧ͸ɺର৅͕ഒʹ૿͑Δͱഒͷ͕͔͔࣌ؒΔ
    ɾೋ෼୳ࡧ͸ɺର৅͕ഒʹ૿͑ͯ΋ TUFQ ͔͠૿͑ͳ͍

    View Slide

  57. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾશ୳ࡧ͸ɺର৅͕ഒʹ૿͑Δͱഒͷ͕͔͔࣌ؒΔ
    ˠ /ݸͷ΋ͷΛߜΓࠐΉͷʹ͔͔Δճ਺ ࠷େ /
    ɾೋ෼୳ࡧ͸ɺର৅͕ഒʹ૿͑ͯ΋ TUFQ ͔͠૿͑ͳ͍
    ˠ࠷େ MPH/

    View Slide

  58. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾMPH/ͳ΋ͷͷྫ
    ɾೋ෼୳ࡧ ʜݕࡧൣғ͕ ഒʹͳͬͯ΋ TUFQ਺͸
    ɾ੔਺ͷܻ਺ ʜେ͖͕͞ ഒʹͳͬͯ΋ܻ਺͸
    ɾϚάχνϡʔυ ʜΤωϧΪʔ͕ഒʹͳͬͯ΋ .͸
    ɾʮ˓˓ഒʹͳͬͯ΋ ͚ͩʯͳ΋ͷ͸ MPH/

    View Slide

  59. ΞϧΰϦζϜͷʮ଎͞ʯ
    Z/
    ZMPH/
    ˡ
    ε
    ς

    ϓ

    ʮMPH/͸ര଎ʯ

    View Slide

  60. ΞϧΰϦζϜͷʮ଎͞ʯ
    ɾ"U$PEFS ͷݶք͸ ? TUFQ͘Β͍
    ɾ୳ࡧൣғ͕ ?͘Β͍ ˠ ૯౰ͨΓՄೳ
    ɾ?Ҏ্ ˠ ೋ෼୳ࡧ FUD ͷ޻෉Λߟ͑Δඞཁ͋Γ

    View Slide

  61. ྦྷੵ࿨ %ऑ d

    View Slide

  62. ྦྷੵ࿨
    ɾ۠ؒΛѻ͏໰୊ͷయܕςΫͦͷ̍

    View Slide

  63. ྫ୊ $ऑ͘Β͍ʁ

    ɾ/ͱɺ /ݸͷ੔਺ "<>">͕༩͑ΒΕΔ
    ɾ૯࿨͕ ະຬͱͳΔ෦෼ྻͷ͏ͪ࠷௕ͷ΋ͷ͸Կཁૉ͔
    ˞෦෼ྻ ʹ ਺ྻͷઌ಄ɾ຤ඌ͔Β ݸҎ্ͷཁૉΛࣺͯͨ΋ͷ
    ɾ/͸ ?
    ҎԼ

    View Slide

  64. ྫ୊ $ऑ͘Β͍ʁ

    ɾ/ͱɺ /ݸͷ੔਺ "<>">͕༩͑ΒΕΔ
    ɾ૯࿨͕ ະຬͱͳΔ෦෼ྻͷ͏ͪ࠷௕ͷ΋ͷ͸Կཁૉ͔
    ˞෦෼ྻ ʹ ਺ྻͷઌ಄ɾ຤ඌ͔Β ݸҎ্ͷཁૉΛࣺͯͨ΋ͷ
    ɾ/͸ ?
    ҎԼ
    ղ๏
    ɾ͜ͷେ͖͞ͳΒ૯౰ͨΓͰ͍͚Δ

    View Slide

  65. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL

    View Slide

  66. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL

    View Slide

  67. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH

    View Slide

  68. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH

    View Slide

  69. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL

    View Slide

  70. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL
    PL

    View Slide

  71. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL
    PL
    OH

    View Slide

  72. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL
    PL
    OH
    PL

    View Slide

  73. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL
    PL
    OH
    PL
    PL

    View Slide

  74. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL
    PL
    OH
    PL
    PL
    PL

    View Slide

  75. ྫ୊ $ऑ͘Β͍ʁ

    ྫɿ
    PL
    PL
    OH
    OH
    PL
    PL
    OH
    PL
    PL
    PL

    View Slide

  76. n = int(input())
    a = input().split().map(int)
    max = 0
    for from in range(0, n):
    for to in range(i, n):
    sum = 0
    for i in range(from, to + 1):
    sum += a[i]
    if sum <= 100:
    if to – from + 1 > max:
    max = to – from + 1
    print(max)
    #include
    int main (void) {
    int n, a[300], i, from, to, max = 0;
    scanf(“%d”, &n);
    for (i = 0; i < n; i++)
    scanf(“%d”, &a[i]);
    for (from = 0; from < n; from++)
    for (to = sum = 0; to < n; to++) {
    for (i = from; i <= to; i++)
    sum += a[i]
    if (sum <= 100)
    if (to – from + 1 > max)
    max = to – from + 1;
    }
    printf(“%d¥n”, max);
    }
    1ZUIPOͷྫ $ͷྫ

    View Slide

  77. ྦྷੵ࿨
    ɾܭࢉίετΛݟੵ΋ͬͯΈΔ

    View Slide

  78. ྦྷੵ࿨
    ɾܭࢉίετΛݟੵ΋ͬͯΈΔ
    ɾ࢝఺ ऴ఺ͷ૊Έ߹Θ͕ͤ໿ O?௨Γ

    View Slide

  79. ྦྷੵ࿨
    ɾܭࢉίετΛݟੵ΋ͬͯΈΔ
    ɾ࢝఺ ऴ఺ͷ૊Έ߹Θ͕ͤ໿ O?௨Γ
    ɾͦΕͧΕͷϖΞʹରͯ͠ɺ૯࿨ΛٻΊΔͷʹ໿ OTUFQ

    View Slide

  80. ྦྷੵ࿨
    ɾܭࢉίετΛݟੵ΋ͬͯΈΔ
    ɾ࢝఺ ऴ఺ͷ૊Έ߹Θ͕ͤ໿ O?௨Γ
    ɾͦΕͧΕͷϖΞʹରͯ͠ɺ૯࿨ΛٻΊΔͷʹ໿ OTUFQ
    ɾOTUFQͷ࡞ۀΛ O?௨Γͷ૊Έ߹ΘͤͦΕͧΕʹ΍Δͱ
    ˠ OO?O? ?
    ?? TUFQ PL

    View Slide

  81. ྦྷੵ࿨
    ɾݟੵ΋Γ͸େࣄ ˠ λΠϜϩε΍༨ܭͳϖφΛ๷͙
    ɾۀ຿Ͱ΋ແҙࣝʹܭࢉྔΛ૝૾Ͱ͖Δਓ͸ڧ͍ʢͱࢥ͏ʣ

    View Slide

  82. ྫ୊ վ %ऑ͘Β͍ʁ

    ɾ/ͱɺ /ݸͷ੔਺ "<>">͕༩͑ΒΕΔ
    ɾ૯࿨͕ ະຬͱͳΔ෦෼ྻͷ͏ͪ࠷௕ͷ΋ͷ͸Կཁૉ͔
    ˞෦෼ྻ ʹ ਺ྻͷઌ಄ɾ຤ඌ͔Β ݸҎ্ͷཁૉΛࣺͯͨ΋ͷ
    ɾ/͸ ?
    ?
    ҎԼ

    View Slide

  83. ྦྷੵ࿨
    ɾ͖ͬ͞ͱಉ͡ϓϩάϥϜΛ࢖͏৔߹ͷܭࢉίετ
    ˠ ໿ O? ?
    ?? TUFQ

    View Slide

  84. ྦྷੵ࿨
    ɾ͖ͬ͞ͱಉ͡ϓϩάϥϜΛ࢖͏৔߹ͷܭࢉίετ
    ˠ ໿ O? ?
    ?? TUFQ
    ɾ?͸ "U$PEFS తʹ͸Ξ΢τ
    ˠ ॻ͖࢝ΊͪΌ͏લʹؾ෇͖͍ͨ

    View Slide

  85. ྦྷੵ࿨
    ɾܭࢉίετͷ಺༁Λࢥ͍ग़͢
    ɾશ୳ࡧʹ O?
    ɾ૯࿨ͷܭࢉʹ O

    View Slide

  86. ྦྷੵ࿨
    ɾܭࢉίετͷ಺༁Λࢥ͍ग़͢
    ɾશ୳ࡧʹ O?
    ɾ૯࿨ͷܭࢉʹ Oˡ ͜ΕΛઅ໿͢Δͷ͕ྦྷੵ࿨

    View Slide

  87. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^

    View Slide

  88. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^
    \4^

    View Slide

  89. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^
    \4^

    View Slide

  90. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^
    \4^

    View Slide

  91. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^
    \4^

    View Slide

  92. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^
    \4^

    View Slide

  93. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    \"^
    \4^

    View Slide

  94. ྦྷੵ࿨
    \"^
    \4^
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    ɾ4ΛݟΔͱ "<>d"·Ͱͷ૯࿨͕ҰܸͰΘ͔Δ

    View Slide

  95. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    ɾ4ΛݟΔͱ "<>d"·Ͱͷ૯࿨͕ҰܸͰΘ͔Δ
    \"^
    \4^

    View Slide

  96. ྦྷੵ࿨
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    ɾ4ΛݟΔͱ "<>d"·Ͱͷ૯࿨͕ҰܸͰΘ͔Δ
    ɾ"d"·Ͱͷ૯࿨͸ɺ 4r 4ͰΘ͔Δ
    \"^
    \4^

    View Slide

  97. ྦྷੵ࿨
    \"^
    \4^
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    ɾ4ΛݟΔͱ "<>d"·Ͱͷ૯࿨͕ҰܸͰΘ͔Δ
    ɾ"d"·Ͱͷ૯࿨͸ɺ 4r 4ͰΘ͔Δ

    View Slide

  98. ྦྷੵ࿨
    \"^
    \4^
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    ɾ4ΛݟΔͱ "<>d"·Ͱͷ૯࿨͕ҰܸͰΘ͔Δ
    ɾ"d"·Ͱͷ૯࿨͸ɺ 4 r 4ͰΘ͔Δ

    View Slide

  99. ྦྷੵ࿨
    \"^
    \4^
    ɾ΋ͱͷ਺ྻ "͔ΒɺҎԼͷΑ͏ʹʮྦྷੵ࿨ʯ4Λ࡞Δ
    ɾ4ΛݟΔͱ "<>d"·Ͱͷ૯࿨͕ҰܸͰΘ͔Δ
    ɾ"d"·Ͱͷ૯࿨͸ɺ 4 r 4 ͰΘ͔Δ

    View Slide

  100. ྦྷੵ࿨
    ɾܭࢉίετͷ಺༁Λࢥ͍ग़͢
    ɾશ୳ࡧʹ O?
    ɾ૯࿨ͷܭࢉʹ O Ҿ͖ࢉ̍ճ

    View Slide

  101. ྦྷੵ࿨
    ɾܭࢉίετͷ಺༁Λࢥ͍ग़͢
    ɾશ୳ࡧʹ O?
    ɾ૯࿨ͷܭࢉʹ O Ҿ͖ࢉ̍ճ
    ɾτʔλϧ O?ʹͳͬͨ

    View Slide

  102. ྦྷੵ࿨
    ɾܭࢉίετͷ಺༁Λࢥ͍ग़͢
    ɾશ୳ࡧʹ O?
    ɾ૯࿨ͷܭࢉʹ O Ҿ͖ࢉ̍ճ
    ɾτʔλϧ O?ʹͳͬͨ
    ɾ ?
    ?? ͳͷͰɺ͜Ε͸େৎ෉

    View Slide

  103. ͠Ό͘ͱΓ๏ %d

    View Slide

  104. ͠Ό͘ͱΓ๏
    ɾ۠ؒΛѻ͏໰୊ͷయܕςΫͦͷ̎
    ɾ࢖͑Δ໰୊͕ݶΒΕΔ͕Ϋι଎͍

    View Slide

  105. ྫ୊ վೋ %͘Β͍ʁ

    ɾ/ͱɺ /ݸͷ੔਺ "<>">͕༩͑ΒΕΔ
    ɾ૯࿨͕ ະຬͱͳΔ෦෼ྻͷ͏ͪ࠷௕ͷ΋ͷ͸Կཁૉ͔
    ˞෦෼ྻ ʹ ਺ྻͷઌ಄ɾ຤ඌ͔Β ݸҎ্ͷཁૉΛࣺͯͨ΋ͷ
    ɾ/͸ ?
    ?
    ?
    ҎԼ

    View Slide

  106. ͠Ό͘ͱΓ๏
    ɾ?ͳͷͰ͍Α͍Α O?΋ڐ͞Εͳ͍

    View Slide

  107. ͠Ό͘ͱΓ๏
    ɾ?ͳͷͰ͍Α͍Α O?΋ڐ͞Εͳ͍
    ɾൣғΛ৳ͼॖΈ͠ͳ͕Β͡Θ͡ΘਐΉͱ࣮͸ OͰߦ͚Δ

    View Slide

  108. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    View Slide

  109. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    View Slide

  110. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    View Slide

  111. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    View Slide

  112. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    ҲΕͨͷͰ Λ௥͍ग़͢

    View Slide

  113. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    View Slide

  114. ͠Ό͘ͱΓ๏
    \"^ ߹ܭ

    View Slide

  115. ͠Ό͘ͱΓ๏
    ɾࠨ͔ΒӈʹᢞΊ͍͚ͯͩ͘ͳͷͰ໿ O

    View Slide

  116. ෼ׂ౷࣏ ࠶ؼ

    View Slide

  117. ෼ׂ౷࣏ ࠶ؼ

    ɾ࣮૷͠ʹ͍͘໰୊Λখ͍͞໰୊ʹ෼ׂͯ͠ߟ͑ΔςΫ

    View Slide

  118. 1SPKFDU&VMFSr .BYJNVNQBUITVN վ

    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ









    View Slide

  119. 1SPKFDU&VMFSr .BYJNVNQBUITVN վ











    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ

    View Slide

  120. 1SPKFDU&VMFSr .BYJNVNQBUITVN վ

    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ









    View Slide

  121. 1SPKFDU&VMFSr .BYJNVNQBUITVN վ

    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ









    View Slide

  122. 1SPKFDU&VMFSr .BYJNVNQBUITVN վ

    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ
    ղ๏
    ɾϧʔτ͸ ? ௨ΓͳͷͰશ୳ࡧՄೳ
    ɾ͔࣮͠͠૷͕ͩΔͦ͏ʜ

    View Slide

  123. ෼ׂ౷࣏ ࠶ؼ

    ɾ࠶ؼ ʹ ໰୊ΛΑΓখ͞ͳ໰୊ʹ෼͚Δ

    View Slide

  124. ෼ׂ౷࣏ ࠶ؼ

    ɾσΧࡾ֯Λ੨ࡾ֯ͱᒵࡾ֯ʹ෼͚Δ
    ˠ ͦΕͧΕ࠷ڧϧʔτΛܭࢉͯ͠ɺڧ͍ํʹ ଍ͤ͹ PL




















    View Slide

  125. ෼ׂ౷࣏ ࠶ؼ

    ɾσΧࡾ֯Λ੨ࡾ֯ͱᒵࡾ֯ʹ෼͚Δ
    ˠ ͦΕͧΕ࠷ڧϧʔτΛܭࢉͯ͠ɺڧ͍ํʹ ଍ͤ͹ PL
    ɾղ͘΂͖ࡾ֯ܗͷߴ͕͞Ұஈ௿͘ͳͬͨ

    View Slide

  126. ෼ׂ౷࣏ ࠶ؼ










    ɾσΧࡾ֯Λ੨ࡾ֯ͱᒵࡾ֯ʹ෼͚Δ
    ˠ ͦΕͧΕ࠷ڧϧʔτΛܭࢉͯ͠ɺڧ͍ํʹ ଍ͤ͹ PL

    View Slide

  127. ෼ׂ౷࣏ ࠶ؼ

    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ









    View Slide

  128. ෼ׂ౷࣏ ࠶ؼ



















    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  129. ෼ׂ౷࣏ ࠶ؼ









    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  130. ෼ׂ౷࣏ ࠶ؼ

















    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  131. ෼ׂ౷࣏ ࠶ؼ

    ҎԼུʜʜ
    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  132. ෼ׂ౷࣏ ࠶ؼ





    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  133. ෼ׂ౷࣏ ࠶ؼ


    ཁૉ਺̍ͷࡾ֯ܗ
    ˠ ࠷ڧϧʔτ͸΋ͪΖΜ
    ɾ͜ͷ෼ղ͸ԿճͰ΋܁ΓฦͤΔ
    ɾݶք·Ͱ܁Γฦ͢ͱɺΫι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  134. ෼ׂ౷࣏ ࠶ؼ

    ɾϓϩάϥϜʹམͱ͠ࠐΉͱ͜Μͳײ͡
    # y 段目 x 桁目から始まる三角形の最強を求める関数
    def computeMaxRoute (x, y):
    # もしここが最下段だったら、数字は一つしかないのでそれが答え
    if y == 10:
    return a[x][y]
    else:
    # 二つの小さい三角形で問題を解いて、より強い方を取る
    leftMax = computeMaxRoute(x, y + 1)
    rightMax = computeMaxRoute(x + 1, y + 1)
    return max(leftMax, rightMax) + a[x][y]

    View Slide

  135. ෼ׂ౷࣏ ࠶ؼ

    ɾϓϩάϥϜʹམͱ͠ࠐΉͱ͜Μͳײ͡
    ɾߟ͑ํ͕Θ͔Ε͹͜ͷϓϩάϥϜ͸ཧղͰ͖ͳͯ͘΋ PL
    ˠ ʮ%1ʯͷղઆͰؔ਺Λ࢖Θͳ͍ WFS ΋ొ৔͢Δ

    View Slide

  136. ෼ׂ౷࣏ ࠶ؼ

    ɾ࠶ؼ ʹ ໰୊ΛΑΓখ͞ͳ໰୊ʹ෼͚Δ
    ˠ ܁Γฦͤ͹࠷ޙʹ͸Ϋι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ

    View Slide

  137. ෼ׂ౷࣏ ࠶ؼ

    ɾ࠶ؼ ʹ ໰୊ΛΑΓখ͞ͳ໰୊ʹ෼͚Δ
    ˠ ܁Γฦͤ͹࠷ޙʹ͸Ϋι΄Ͳ؆୯ͳ໰୊ʹؼண͢Δ
    ɾ ؔ਺ͷதͰࣗ਎Λ·ͨݺͼग़͢ͱ؆୯ʹ࣮૷Ͱ͖Δ
    ࠷ॳ͸ؾ࣋ͪѱ͍ͱࢥ͏͚Ͳɺͦͷ͏ͪ׳ΕΔ͸ͣ

    View Slide

  138. ෼ׂ౷࣏ ϝϞԽ %ڧ d

    View Slide

  139. ෼ׂ౷࣏ ϝϞԽ

    ɾ࠶ؼతͳ໰୊Λޮ཰Α͘ղ͘ςΫ
    ˠ ରՁͱͯ͠ϝϞϦফඅ͕େ͖͘ͳΔ
    "U$PEFS Ͱ͸ϝϞϦͰϋϚΔ͜ͱ͸͋·Γͳ͍

    View Slide

  140. 1SPKFDU&VMFSr .BYJNVNQBUITVN վೋ

    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ

    View Slide

  141. 1SPKFDU&VMFSr .BYJNVNQBUITVN վೋ

    ɾࡾ֯ܗঢ়ʹฒΜͩ੔਺͕ ஈ༩͑ΒΕΔ
    ɾҰ൪্ͷ਺ࣈ͔ΒਅԼ PSӈԼΛ܁Γฦ͠બΜͰ߱Γ͍ͯ͘
    ɾҰ൪૯࿨͕େ͖͘ͳΔϧʔτͷ૯࿨͸ʁ
    ղ๏
    ɾϧʔτ͸ ? ໿ ?௨Γ͋ΔͷͰ޻෉͕ඞཁ

    View Slide

  142. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ

    View Slide

  143. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍

    View Slide

  144. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  145. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  146. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  147. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  148. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  149. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  150. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  151. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  152. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  153. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍










    View Slide

  154. ෼ׂ౷࣏ ϝϞԽ

    ɾΞΠσΞɿॏෳͨ͠ܭࢉΛεΩοϓ͢Δ
    ˠ ࠶ؼͰొ৔͢Δࡾ֯ܗ͸͍͍ͤͥ O?छྨ͔͠ͳ͍
    ɾ݁ՌΛ࠶ར༻͢Ε͹ɺ࣮͸ඞཁͳܭࢉ͸ O?छྨ͚ͩ

    View Slide

  155. ෼ׂ౷࣏ ϝϞԽ

    ɾϓϩάϥϜʹམͱ͠ࠐΉͱ͜Μͳײ͡
    # -1 (未計算を表す) がぎっしり並んだ配列
    memo = [([-1] * 1001) for i in range(1,1001)]
    def computeMaxRouteWithMemo (x, y):
    # まだ計算した事がなかった場合だけ計算
    if memo[x][y] == -1:
    memo[x][y] = computeMaxRoute(x, y)
    return memo[x][y]

    View Slide

  156. ෼ׂ౷࣏ %1 %ڧ d

    View Slide

  157. ෼ׂ౷࣏ %1

    ɾ%1%ZOBNJD1SPHSBNNJOH

    View Slide

  158. ෼ׂ౷࣏ %1

    ɾ%1%ZOBNJD1SPHSBNNJOH
    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δ΍ͭʯ
    ˠ ྫΛݟͨํ͕ଟ෼Θ͔Γ΍͍͢

    View Slide

  159. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ










    View Slide

  160. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    ̍ஈ໨͸ͦͷ··ॻ͖ࣸ͢

    View Slide

  161. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    ਅԼ PSӈԼͷ͏ͪڧ͍ํʴࣗ਎ͷ਺ࣈ

    View Slide

  162. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    View Slide

  163. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    View Slide

  164. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    View Slide

  165. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    View Slide

  166. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ




















    View Slide

  167. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ










    Y









    View Slide

  168. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ
    ˠ Լ͔Βྦྷੵ࿨ͬΆ͍ײ͡Ͱ଍͍ͯ͘͠
    ɾࠓճͷ৔߹͸௖఺ʹ͖ͨ਺ࣈ͕౴͑

    View Slide

  169. ෼ׂ౷࣏ %1

    ɾʮϝϞԽ࠶ؼΛԼ͔Β΍Δౕʯ
    ˠ Լ͔Βྦྷੵ࿨ͬΆ͍ײ͡Ͱ଍͍ͯ͘͠
    ɾࠓճͷ৔߹͸௖఺ʹ͖ͨ਺ࣈ͕౴͑
    ɾO?ͷେ͖͞ͷදΛຒΊ͚ͨͩͳͷͰܭࢉྔ΋ O?

    View Slide

  170. ෼ׂ౷࣏ %1

    ɾ΍͍ͬͯΔ͜ͱ΋ܭࢉྔ΋ϝϞԽ࠶ؼͱಉ͡
    ಉ͡ςΫχοΫͱݟͳ͞ΕΔ৔߹΋ଟ͍

    View Slide

  171. ෼ׂ౷࣏ %1

    ɾ΍͍ͬͯΔ͜ͱ΋ܭࢉྔ΋ϝϞԽ࠶ؼͱಉ͡
    ಉ͡ςΫχοΫͱݟͳ͞ΕΔ৔߹΋ଟ͍

    ɾ࣮૷͠΍͍͢ํΛબ΂͹ྑ͍ͱࢥ͏͕ɺ %1ͷํ͕Ұൠత
    ؔ਺ݺͼग़͠ͷίετ͕ͳ͍ͷͰଟগ଎͍͔΋

    View Slide

  172. ·ͱΊ

    View Slide

  173. ·ͱΊ
    ɾ੍໿ʹΑͬͯ࢖͑ΔΞϧΰϦζϜ͕ܾ·ͬͯ͘Δ
    ɾܭࢉྔͷࣄલݟੵ΋Γ͕Ͱ͖Δͱϩε͕ͳ͍

    View Slide

  174. ·ͱΊ
    ɾ੍໿ʹΑͬͯ࢖͑ΔΞϧΰϦζϜ͕ܾ·ͬͯ͘Δ
    ɾܭࢉྔͷࣄલݟੵ΋Γ͕Ͱ͖Δͱϩε͕ͳ͍
    ɾΉ͠Ζ੍໿͔Βղ๏Λࢥ͍ͭ͘͜ͱ΋͋Δ
    ˠ ʮ/㱡ͬͯ͜ͱ͸ /?ͷશ୳ࡧ͡ΌΜʯFUD

    View Slide

  175. ·ͱΊ
    ɾయܕςΫΛ͍͔ͭ͘঺հͨ͠
    ɾ୳ࡧܥ શ୳ࡧɺೋ෼୳ࡧ
    ɾ਺ྻܥ ྦྷੵ࿨ɺ͠Ό͘ͱΓ
    ɾ࠶ؼܥ ࠶ؼͷجຊɺϝϞԽɺ%1
    ɾ࢖͑ΔΞΠςϜ͕૿͑ΔͱͲΜͲΜڧ͘ͳΔͷͰָ͍͠

    View Slide

  176. )BWFBHPPEڝϓϩ MJGF

    View Slide