ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΡΠΎΠ²ΡΡ ΠΌΠ°ΡΠΊΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΡ ΡΠ·ΠΎΡΠΎΠ², Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈΠ³ΡΡ, ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²ΡΡΡΠ±ΠΊΠΈ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², ΠΈ Π²ΡΡΡΠ½ΡΠ΅ΠΌ, Π·Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ±Π΅ΠΆΠ°ΡΡ ΠΏΠΎ ΡΡΠΊΠ°Π»Π°ΡΠΎΡΡ.
ΠΠ°Π΄Π°ΡΠ° 1: ΠΠ°Π·ΠΎΠ½
ΠΠ΅ΡΠ΅Π΄ ΠΊΠΎΡΡΠ΅Π΄ΠΆΠ΅ΠΌ ΠΠ²Π°Π½Π° ΠΠ²Π°Π½ΠΎΠ²ΠΈΡΠ° Π΅ΡΡΡ Π³Π°Π·ΠΎΠ½ β Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Ρ ΡΠ΅Π»ΡΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΡΠ°ΡΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΡΡΠΎΠΊ ΡΡΠ°Π²Ρ. ΠΠ΄Π½Π°ΠΆΠ΄Ρ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΠΊΡΠΏΠΈΠ» Π½ΠΎΠ²ΡΡ Π³Π°Π·ΠΎΠ½ΠΎΠΊΠΎΡΠΈΠ»ΠΊΡ, ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΡ-Π΄ΡΠ°ΠΉΠ²Π° ΠΏΠΎΠ΄ΡΡΡΠΈΠ³ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ Π³Π°Π·ΠΎΠ½Π°. Π‘ΡΠΎΡΠΎΠ½Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΎΡΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, Π° Π΄Π²Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΠΎΡΠΊΠ°Ρ (x1, y1) ΠΈ (x2, y2). ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΡΠΊΠΈ ΡΡΠ°Π²Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΈΠΆΠ΅Π½Ρ. ΠΠΎΡΠ»Π΅ ΡΡΡΠΈΠΆΠΊΠΈ Π²Π»Π°Π΄Π΅Π»Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Π½Π° Π³Π°Π·ΠΎΠ½Π΅ ΠΏΠΎΠ»ΠΈΠ²Π°Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ. ΠΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΠΊΠ΅ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x3, y3) ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π΄ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ r. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠ»ΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΡΡΠΊΠΈ, ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎ ΡΠΎΡΠΊΠΈ (x3, y3) Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ r. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΠ²Π°Π½Ρ ΠΠ²Π°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΊΠΎΠ² ΡΡΠ°Π²Ρ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΈΠΆΠ΅Π½ΠΎ, ΠΈ ΠΏΠΎΠ»ΠΈΡΠΎ.
Π€ΠΎΡΠΌΠ°Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ
- Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ»Π° x1, x2, y1, y2 (β100000 β€ Ρ 1 < Ρ 2 β€ 100000, β100000 β€ y1 < y2 β€ 100000).
- ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ»Π° x3, y3, r (β100000 β€ x3, y3 β€ 100000, 1 β€ r β€ 100000.
Π€ΠΎΡΠΌΠ°Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ
Π¦Π΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΡΡΡΠΈΠΆΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΠΈΡΡΡ ΠΏΡΡΠΊΠΎΠ² ΡΡΠ°Π²Ρ).
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
ΠΡΠ²ΠΎΠ΄:
π ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°
ΠΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°Β»
ππ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ±Π΅ΡΠ° ΠΏΠΎ Python
ΠΠΎΠ΄ΡΡΠ½ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ±Π΅ΡΠ° ΠΏΠΎ PythonΒ»
π§©π ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΠΎ Python
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Python Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π΄Π°Ρ ΠΏΠΎ PythonΒ»
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΡΠΌΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΏΡΡΠΊΠΈ ΡΡΠ°Π²Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π³ΡΡΠΏΠΏΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ΅ΠΉ Π°Π±ΡΡΠΈΡΡ ΠΈ ΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΡΠΌΡΡ Ρ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡΡ β ΠΎΠ±Π»Π°ΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»ΠΈΠ²Π°Π»ΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅ ΡΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΡΠΈΠΆΠ΅Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΠΈΡΡΡ ΠΏΡΡΠΊΠΎΠ² ΡΡΠ°Π²Ρ Π΄Π»Ρ Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ β Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΈΡΠ»Π°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΠ»Π° ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ, ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° Π·Π°Π΄Π°ΡΡ.
ΠΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ O(r), ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ°Π΄ΠΈΡΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ (ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΠ»ΠΈΠ²Π°) ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΡΠΊΠΎΠ² ΡΡΠ°Π²Ρ ΠΈΠ»ΠΈ ΠΏΡΡΠΌΡΡ .
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΠΊΡΠ°ΡΠΊΠΈΠΉ:
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π±ΡΡΡΡΡΠΉ:
ΠΠ°Π΄Π°ΡΠ° 2: ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ
ΠΠ²Π° ΠΏΠΈΡΠ°ΡΠ° ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ Π½ΠΎΠ²ΡΡ ΠΈΠ³ΡΡ: Π²ΡΠ»ΠΎΠΆΠΈΠ»ΠΈ Π½Π° ΡΡΠΎΠ» Π² ΡΡΠ΄ Π²ΡΠ΅ ΠΏΠΈΠ°ΡΡΡΡ, ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π° ΠΈΠ³ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ 1 ΠΌΠΎΠ½Π΅ΡΡ Π»ΠΈΠ±ΠΎ ΡΠΏΡΠ°Π²Π°, Π»ΠΈΠ±ΠΎ ΡΠ»Π΅Π²Π°. ΠΠ³ΡΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΌΠΎΠ½Π΅ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ.
ΠΠ±Π° ΠΏΠΈΡΠ°ΡΠ° ΡΡΡΠ΅ΠΌΡΡΡΡ Π²ΡΠΈΠ³ΡΠ°ΡΡ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π±ΡΠ°ΡΡ ΠΌΠΎΠ½Π΅ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΆΠ°Π΄Π½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ ΠΈ ΡΡΠΌΠΌΡ Π΅Π³ΠΎ Π²ΡΠΈΠ³ΡΡΡΠ° ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ±Π° ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° ΠΈΠ³ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ, Π° ΠΌΠΎΠ½Π΅ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΠΎΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎ.
ΠΡΠΈΠΌΠ΅ΡΡ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π°:
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
Π‘ΠΏΠΎΡΠΎΠ± 1 β ΡΠ΅ΠΊΡΡΡΠΈΡ Ρ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
ΠΠΎ Π²ΡΠ΅ΠΌΡ Ρ ΠΎΠ΄Π° Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ° Π΅ΡΡΡ Π΄Π²Π΅ ΠΎΠΏΡΠΈΠΈ:
1. ΠΠ·ΡΡΡ ΠΌΠΎΠ½Π΅ΡΡ Ci ΡΠ»Π΅Π²Π° β ΡΠΎΠ³Π΄Π° ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΌΠΎΠ½Π΅ΡΡ Ci+1 ΠΈΠ»ΠΈ Cj. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ³ΡΠΎΠΊ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ±ΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ±ΡΠ»ΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΈΠ³ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π±ΡΠ°ΡΡ ΠΌΠΎΠ½Π΅ΡΡ Ci + min(function(i+2, j), function(i+1, j-1) ) Π³Π΄Π΅ [i+2,j] β Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠΎΠ½Π΅Ρ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΈΠ³ΡΠΎΠΊΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΌΠΎΠ½Π΅ΡΡ Ci+1, a[i+1,j-1] β ΠΌΠΎΠ½Π΅ΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ³ΡΠΎΠΊΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ Π²ΠΎΠ·ΡΠΌΠ΅Ρ ΠΌΠΎΠ½Π΅ΡΡ ΡΠΏΡΠ°Π²Π°, Cj.
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
2. ΠΠ·ΡΡΡ ΠΌΠΎΠ½Π΅ΡΡ Cj ΡΠΏΡΠ°Π²Π° β Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ Π²ΡΠ±Π΅ΡΠ΅Ρ Π»ΠΈΠ±ΠΎ Ci ΡΠ»Π΅Π²Π°, Π»ΠΈΠ±ΠΎ Cj-1 ΡΠΏΡΠ°Π²Π°. Π§ΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ±ΡΠ»ΡΡ, ΠΈΠ³ΡΠΎΠΊ Π²ΠΎΠ·ΡΠΌΠ΅Ρ ΠΌΠΎΠ½Π΅ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Cj + min(function(i+1, j-1), function(i, j-2) ), Π³Π΄Π΅ [i,j-2] β ΠΌΠΎΠ½Π΅ΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ Π²ΡΠ±Π΅ΡΠ΅Ρ ΠΌΠΎΠ½Π΅ΡΡ ΡΠΏΡΠ°Π²Π°, Π° [i+1,j-1] β ΠΌΠΎΠ½Π΅ΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Ci.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠ°Π½ΠΈΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ:
ΠΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ΅ΠΉ:
Π‘ΠΏΠΎΡΠΎΠ± 2 β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° n x n.
Π ΡΠΈΠΊΠ»Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ i ΠΈ j Π½Π° Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡΡ . ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² β Π΄ΠΈΡΡΠ°Π½ΡΠΈΠ΅ΠΉ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ x, y, z:
- Π΅ΡΠ»ΠΈ i+2 <=j, ΡΠΎ x ΡΠ°Π²Π½ΠΎ matrix[i+2][j], Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ x = 0;
- Π΅ΡΠ»ΠΈ i+1 <=j-1, ΡΠΎ y = matrix[i+1][j-1] , Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ y = 0;
- Π΅ΡΠ»ΠΈ i <= j-2, ΡΠΎ z = matrix[i][j-2] , Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ z = 0.
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ matrix[i][j] ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π΄Π²ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ β coins[i] + min(x, y) ΠΈ coins[j] + min(y, z). ΠΡΠ²Π΅Ρ β Π² matrix[0][n β 1].
ΠΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ:
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
π 5 Π·Π°Π΄Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Python
ΠΠ°Π΄Π°ΡΠ° 3. ΠΡΠΊΠ°Π»Π°ΡΠΎΡ
Π‘ΡΠ°Π½ΡΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΈΡΠ΅Π½Π° ΠΎΡΠ½Π°ΡΠ΅Π½Π° ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠΎΠΌ. ΠΡΡΡΡ N ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π±Π΅Π³ΡΡ Π²Π½ΠΈΠ· ΠΏΠΎ ΡΡΠΊΠ°Π»Π°ΡΠΎΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ i-ΠΉ ΠΏΡΠΎΠ±Π΅Π³Π°Π΅Ρ ΠΎΠ΄Π½Ρ ΡΡΡΠΏΠ΅Π½ΡΠΊΡ Π·Π° ti ΡΠ΅ΠΊΡΠ½Π΄. Π’Π΅Ρ Π½ΠΈΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π° ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠ΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Β«ΠΎΠ±Π³ΠΎΠ½ΡΒ», ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ A Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π±Π΅Π³Π° Π΄ΠΎΠ³Π½Π°Π» ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° B, ΠΊΠΎΡΠΎΡΡΠΉ Π±Π΅ΠΆΠΈΡ Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ, ΡΠΎ Π΄Π°Π»Π΅Π΅, Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠ°, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ A Π±Π΅ΠΆΠΈΡ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° B. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡΠΏΠ΅Π½ΠΈ ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠ° ΡΠ°ΠΊΠΎΠ²Ρ, ΡΡΠΎ Π½Π° Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ°ΠΌ ΡΡΠ°Π½ΡΠΈΠΈ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΡΠ²ΠΎΠΉ Π±Π΅Π³ ΠΏΠΎ ΡΡΠΊΠ°Π»Π°ΡΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π΅Π³ΡΡΠΈΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ.
Π€ΠΎΡΠΌΠ°Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ N (1 β€ N β€ 105). Π ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΏΠ°ΡΡ ΡΠΈΡΠ΅Π» ti, wi(1 β€ ti, wi β€ 106) β Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ±Π΅Π³Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΏΠ΅Π½ΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΏΠ΅Π½Π΅ΠΉ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠ° Π΄Π»Ρ i-ΡΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°.
Π€ΠΎΡΠΌΠ°Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ , ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ i-ΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠΎΠΉΠ΄Π΅Ρ Ρ ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
ΠΡΠ²ΠΎΠ΄:
Π Π΅ΡΠ΅Π½ΠΈΠ΅
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² order ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² [0..n-1] Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π»ΡΠ΄Π΅ΠΉ.
- ΠΡΠ·ΡΠ²Π°Π΅ΠΌ Π±ΡΡΡΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ qs, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΡΠΈΡΡΠ΅Ρ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π»ΡΠ΄Π΅ΠΉ Π² ΠΌΠ°ΡΡΠΈΠ² order.
- ΠΠΎΡΠ»Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΈΠ· Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡ ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° (ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΠΎΠ±Π³ΠΎΠ½ΡΡΡ Π½Π΅Π»ΡΠ·Ρ).
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ» ΡΡΠΊΠ°Π»Π°ΡΠΎΡΠ°:
Π‘ΡΠ°ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ΠΠ°Π΄Π°ΡΠ° 4: ΠΡΡΡΠ±ΠΊΠ° Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²
Π€Π΅ΡΠΌΠ΅Ρ ΡΠ΅ΡΠΈΠ» Π²ΡΡΡΠ±ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ, ΡΠ°ΡΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ Π΄ΠΎΠΌΠΎΠΌ. ΠΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠΌΠΎΠΌ ΠΏΠΎΡΠ°ΠΆΠ΅Π½Ρ Π² ΡΡΠ΄, Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΌ ΡΠ°ΡΡΠ΅Ρ n Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ. ΠΠΎΡΠ»Π΅ Π²ΡΡΡΠ±ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠΌΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ°ΡΡΡΡ m Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², ΠΈ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ. ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΡΠ΅ΡΠΌΠ΅ΡΡ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΡΡΠ±ΠΊΠΈ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π².
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠΈΡΠ»Π°ΠΌ n ΠΈ m ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΡΡΠ±ΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· n Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΡΠ±ΠΊΠΈ ΠΎΡΡΠ°Π»ΠΎΡΡ m Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², ΠΈ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π° ΡΠ°Π²Π½ΠΎΠΌ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ³Π»ΡΠ΄ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄Π»Ρ m = 5 ΠΈ n = 3:
ΠΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
ΠΡΠ²ΠΎΠ΄:
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΡΠ±ΠΊΠΈ d. Π’ΠΎΠ³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ n β d Ρ (m β 1) β m + 1 ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΡΡΠ±ΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ. Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌ d. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½ΡΠΆΠ½ΠΎ ΡΡΠ΅ΡΡΡ 2 ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°Ρ β ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΡΠ±ΠΊΠΈ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΡΠ°Π²Π½ΠΎ 0 ΠΈΠ»ΠΈ 1.
ΠΠ°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ 1:
ΠΠ°ΡΠΈΠ°Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ 2:
ΠΠ°Π΄Π°ΡΠ° 5. Π‘ΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΠ΅ ΡΠ·ΠΎΡΡ
ΠΠ°ΡΡΠ΅Ρ-ΠΏΠ»ΠΈΡΠΎΡΠ½ΠΈΠΊ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ m x n ΡΠ·ΠΎΡΡ ΠΈΠ· ΡΠ΅ΡΠ½ΡΡ ΠΈ Π±Π΅Π»ΡΡ ΠΏΠ»ΠΈΡΠΎΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 1 Ρ 1 ΠΌΠ΅ΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΎΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ·ΠΎΡ Π±ΡΠ» ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ, ΠΈ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ» ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π·Π°ΠΊΠ°Π·Ρ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ·ΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΠΌ. Π£Π·ΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΠΌ, Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΌ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° 2Γ2 ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠΊΡΡΡΠΎΠ³ΠΎ ΠΏΠ»ΠΈΡΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°.ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΡ ΡΠ·ΠΎΡΠΎΠ²:
Π Π½Π° ΡΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ β ΠΎΠ±ΡΠ°Π·ΡΡ Π½Π΅ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΡΡ :
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΊΠ°Π·ΠΎΠ² ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΡΠΈ Π·Π°Π΄Π°Π½Π½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ .
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΠ°Π΄Π°ΡΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΠΎΠ΄ΡΡΠ΅ΡΡ ΡΠΈΡΠ»Π° ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈΠ· n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° m Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², ΠΈ ΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ:
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Ρ n Π±ΠΈΡ. ΠΡΠ»ΠΈ i-ΠΉ Π±ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² 1, Π·Π½Π°ΡΠΈΡ i-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.
Π adj_mask[prv][cur] Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Π»ΠΈ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° prv ΠΈ cur (ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΡΡ Π»ΠΈ ΠΎΠ½ΠΈ). ΠΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠ°Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ².
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² k ΠΎΡ 1 Π΄ΠΎ m, ΠΌΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² dp[k][mask] β ΡΠΈΡΠ»ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ Π½Π° k ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², Π³Π΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΈΡΠΎΠ²ΡΡ ΠΌΠ°ΡΠΊΡ mask.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ k-1 ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΊ k ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ adj_mask:
dp[k][cur] += dp[k-1][prv], Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° prv ΠΈ cur ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ.
Π ΠΈΡΠΎΠ³Π΅ ΠΎΡΠ²Π΅ΡΠΎΠΌ ΡΠ»ΡΠΆΠΈΡ ΡΡΠΌΠΌΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΌΠ°ΡΠΊΠ°ΠΌ Π² dp[m-1][mask].
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π° m ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ².