Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Алгоритмы Π½Π° Π³Ρ€Π°Ρ„Π°Ρ… β€” Π§Π°ΡΡ‚ΡŒ 0: Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ понятия

Как оказалось Ρ‚Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² интСрСсна Π₯Π°Π±Ρ€Π°-сообщСству. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π», Π½Π°Ρ‡Π½Ρƒ ΡΠ΅Ρ€ΠΈΡŽ ΠΎΠ±Π·ΠΎΡ€ΠΎΠ² «классичСских» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ….
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡƒΠ±Π»ΠΈΠΊΠ° Π½Π° Π₯Π°Π±Ρ€Π΅ разная, Π° Ρ‚Π΅ΠΌΠ° интСрСсна ΠΌΠ½ΠΎΠ³ΠΈΠΌ, я Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ части. Π’ этой части я расскаТу Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„, ΠΊΠ°ΠΊ ΠΎΠ½ прСдставлСн Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π—Π°Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΎΡˆΡƒ прощСния Ρƒ Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ это всС ΡƒΠΆΠ΅ прСкрасно Π·Π½Π°Π΅Ρ‚, Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, Π½ΡƒΠΆΠ½ΠΎ сначала ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„. Π‘Π΅Π· этого Π½ΠΈΠΊΠ°ΠΊ.

Π’ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Π“Ρ€Π°Ρ„ β€” это абстрактноС прСдставлСниС мноТСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π“Ρ€Π°Ρ„ΠΎΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Ρƒ (V, E) Π³Π΄Π΅ V это мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½, Π° E мноТСство ΠΏΠ°Ρ€, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставляСт собой связь (эти ΠΏΠ°Ρ€Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ).
Π“Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Π’ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, связи ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Ρ‹ Π² E ΡΠ²Π»ΡΡŽΡ‚ΡΡ упорядочСнными, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ°Ρ€Ρ‹ (a, b) ΠΈ (b, a) это Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ связи). Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, связи Π½Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅, ΠΈ поэтому Ссли сущСствуСт связь (a, b) Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ сущСствуСт связь (b, a).

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

НСориСнтированный Π³Ρ€Π°Ρ„: БосСдство (Π² ΠΆΠΈΠ·Π½ΠΈ). Если (1) сосСд (3), Ρ‚ΠΎ (3) сосСд (1). Π‘ΠΌ рис. 1.Π°

ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„: Бсылки. Π‘Π°ΠΉΡ‚ (1) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° сайт (3), Π½ΠΎ совсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ (хотя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) Ρ‡Ρ‚ΠΎ сайт (3) ссылаСтся сайт (1). Π‘ΠΌ рис. 1.Π±

ΠŸΡƒΡ‚ΡŒ Π² Π³Ρ€Π°Ρ„Π΅ это конСчная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ Π΄Π²Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ подряд соСдинСны Ρ€Π΅Π±Ρ€ΠΎΠΌ. ΠŸΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² зависимости ΠΎΡ‚ Π³Ρ€Π°Ρ„Π°. На рис 1.Π°, ΠΏΡƒΡ‚Π΅ΠΌ являСтся Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ [(1), (4), (5)] Π½Π° рис 1.Π±, [(1), (3), (4), (5)].

Π£ Π³Ρ€Π°Ρ„ΠΎΠ² Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… свойств (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ связными, Π΄Π²ΡƒΠ΄ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ), Π½ΠΎ я Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ всС эти свойства сСйчас, Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частях ΠΊΠΎΠ³Π΄Π° эти понятия понадобятся Π½Π°ΠΌ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΎΠ²

БущСствуСт Π΄Π²Π° способа прСдставлСния Π³Ρ€Π°Ρ„Π°, Π² Π²ΠΈΠ΄Π΅ списков смСТности ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности. Оба способа подходят для прСдставлСния ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ².

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности
Π­Ρ‚ΠΎΡ‚ способ являСтся ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для прСдставлСния ΠΏΠ»ΠΎΡ‚Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… количСство Ρ€Ρ‘Π±Π΅Ρ€ (|E|) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ количСству Π²Π΅Ρ€ΡˆΠΈΠ½ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ (|V| 2 ).
Π’ Π΄Π°Π½Π½ΠΎΠΌ прСдставлСнии ΠΌΡ‹ заполняСм ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ |V| x |V| слСдущим ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
A[i][j] = 1 (Если сущСствуСт Ρ€Π΅Π±Ρ€ΠΎ ΠΈΠ· i Π² j)
A[i][j] = 0 (Π˜Π½Π°Ρ‡Π΅)
Π”Π°Π½Π½Ρ‹ΠΉ способ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ². Для Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° A являСтся симмСтричной (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ A[i][j] == A[j][i], Ρ‚.ΠΊ. Ссли сущСствуСт Ρ€Π΅Π±Ρ€ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ i ΠΈ j, Ρ‚ΠΎ ΠΎΠ½ΠΎ являСтся ΠΈ Ρ€Π΅Π±Ρ€ΠΎΠΌ ΠΈΠ· i Π² j, ΠΈ Ρ€Π΅Π±Ρ€ΠΎΠΌ ΠΈΠ· j Π² i). Благодаря этому свойству ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Π΄Π²Π° Ρ€Π°Π·Π° использованиС памяти, храня элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π½Π°Π΄ Π³Π»Π°Π²Π½ΠΎΠΉ диагональю)
ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ способа прСдставлСния, ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π΅Π±Ρ€ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ v ΠΈ u, просто посмотрСв Π² ячСйку A[v][u].
Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны этот способ ΠΎΡ‡Π΅Π½ΡŒ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ O (|V| 2 ) памяти для хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
На рис. 2 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠ· рис. 1 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† смСТности.

Бписки смСТности
Π”Π°Π½Π½Ρ‹ΠΉ способ прСдставлСния большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΎΠ² Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… количСство Ρ€Ρ‘Π±Π΅Ρ€ Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС Ρ‡Π΅ΠΌ количСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ (|E| 2 ).
Π’ Π΄Π°Π½Π½ΠΎΠΌ прСдставлСнии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ массив Adj содСрТащий |V| списков. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ спискС Adj[v] содСрТатся всС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ u, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ v ΠΈ u Π΅ΡΡ‚ΡŒ Ρ€Π΅Π±Ρ€ΠΎ. ΠŸΠ°ΠΌΡΡ‚ΡŒ трСбуСмая для прСдставлСния Ρ€Π°Π²Π½Π° O (|E| + |V|) Ρ‡Ρ‚ΠΎ являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‡Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности для Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ².
Π“Π»Π°Π²Π½Ρ‹ΠΉ нСдостаток этого способа прСдставлСния Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ быстрого способа ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствуСт Π»ΠΈ Ρ€Π΅Π±Ρ€ΠΎ (u, v).

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
На рис. 3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠ· рис. 1 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ списков смСТности.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

Π’Π΅ ΠΊΡ‚ΠΎ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π» Π΄ΠΎ этого мСста, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π°Π΄Π°Π»ΠΈ сСбС вопрос, Π° Π³Π΄Π΅ ΠΆΠ΅ собствСнно я смогу ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„Ρ‹. Как я ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π» я Π±ΡƒΠ΄Ρƒ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ это ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ. Π’Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ Π³Ρ€Π°Ρ„Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ люди, Π° Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (Π΄Ρ€ΡƒΠΆΠ±Π°). Π“Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ я ΠΌΠΎΠ³Ρƒ Π΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ‚Π΅ΠΌΠΈ ΠΊΡ‚ΠΎ Π΄Ρ€ΡƒΠΆΠΈΡ‚ со ΠΌΠ½ΠΎΠΉ. Π›ΠΈΠ±ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ (ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π–Π–), Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² Π΄Ρ€ΡƒΠ·ΡŒΡ, Π±Π΅Π· Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ добавлял вас. Если ΠΆΠ΅ ΠΎΠ½ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ вас Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Β«Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈΒ». Π’ΠΎ Π΅ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Ρ€Π΅Π±Ρ€Π°: (Он, Π’Ρ‹) ΠΈ (Π’Ρ‹, Он)
Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π³Ρ€Π°Ρ„Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» это ссылки с сайта Π½Π° сайт. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡƒΡŽ систСму ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ сайты Π΅ΡΡ‚ΡŒ большС ссылок (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сайт A), ΠΏΡ€ΠΈ этом ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ сколько сайтов ссылаСтся Π½Π° сайт B, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся Π½Π° сайт A. Π£ вас Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности этих ссылок. Π’Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ввСсти ΠΊΠ°ΠΊΡƒΡŽ Ρ‚ΠΎ систСму подсчёта Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°, которая Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΎ подсчёты Π½Π° этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅, Π½Ρƒ, Π° Π΄Π°Π»ΡŒΡˆΠ΅β€¦ это Google (Ρ‚ΠΎΡ‡Π½Π΅Π΅ PageRank) =)

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ нСбольшая Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ которая понадобится Π½Π°ΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частСй. НадСюсь Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ понятно, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ ΠΈ заинтСрСсовало Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ дальнСйшиС части! ΠžΡΡ‚Π°Π²Π»ΡΠΉΡ‚Π΅ свои ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ поТСлания Π² коммСнтариях.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части

BFS β€” Алгоритм поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ

Библиография

ΠšΠΎΡ€ΠΌΠ΅Π½, ЛайзСрсон, РивСрст, Π¨Ρ‚Π°ΠΉΠ½ β€” Алгоритмы. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π’ΠΈΠ»ΡŒΡΠΌΡ, 2007.
Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ²
Π“Ρ€Π°Ρ„ β€” ΡΡ‚Π°Ρ‚ΡŒΡ Π² английской Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ

Π‘Ρ‚Π°Ρ‚ΡŒΡ это кросс-пост ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ Π±Π»ΠΎΠ³Π° β€” «Programing as is β€” записки программиста»

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Ρ…ΠΎΠ΄Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ – количСство входящих Π² Π½Π΅Π΅ Ρ€Π΅Π±Π΅Ρ€, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° – количСство исходящих Ρ€Π΅Π±Π΅Ρ€.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π³Ρ€Π°Ρ„ΠΎΠ²

Π’ связном Π³Ρ€Π°Ρ„Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ любой ΠΏΠ°Ρ€ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ сущСствуСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΡ‚ΡŒ.

Π’ нСсвязном Π³Ρ€Π°Ρ„Π΅ сущСствуСт хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π°, Π½Π΅ связанная с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π“Ρ€Π°Ρ„Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π°

Π’ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ Ρ€Π΅Π±Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‚.Π΅. сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ доступноС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя связными Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ.

Π’ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Ρ€Π΅Π±Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях.

Частный случай Π΄Π²ΡƒΡ… этих Π²ΠΈΠ΄ΠΎΠ² – ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„. Он Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π±Π΅Ρ€.

Бпособы прСдставлСния Π³Ρ€Π°Ρ„Π°

Π“Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн (сохранСн) нСсколькими способами:

ИспользованиС Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹). Π Π°Π·ΠΌΠ΅Ρ€ массива зависит ΠΎΡ‚ количСства Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ/ΠΈΠ»ΠΈ Ρ€Π΅Π±Π΅Ρ€ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности Π³Ρ€Π°Ρ„Π° β€” это квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: 0 ΠΈΠ»ΠΈ 1.
Число строк ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности Ρ€Π°Π²Π½ΠΎ числу столбцов ΠΈ соотвСтствуСт количСству Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
Когда ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ свободСн (имССтся Ρ€Π΅Π±Ρ€ΠΎ), Π² ячСйку заносится 1, ΠΈΠ½Π°Ρ‡Π΅ – 0. ВсС элСмСнты Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Ρ€Π°Π²Π½Ρ‹ 0 Ссли Π³Ρ€Π°Ρ„ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ‚Π΅Π»ΡŒ.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° инцидСнтности (ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΈ) Π³Ρ€Π°Ρ„Π° β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, количСство строк Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт числу Π²Π΅Ρ€ΡˆΠΈΠ½, Π° количСство столбцов – числу Ρ€Ρ‘Π±Π΅Ρ€. Π’ Π½Π΅ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ элСмСнтами Π³Ρ€Π°Ρ„Π° (Ρ€Π΅Π±Ρ€ΠΎ(Π΄ΡƒΠ³Π°) ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Π°).

Π’ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ Ссли Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Π° Ρ€Π΅Π±Ρ€Ρƒ Ρ‚ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Ρ€Π°Π²Π΅Π½ 1, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС элСмСнт Ρ€Π°Π²Π΅Π½ 0.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° инцидСнтности для своСго прСдставлСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Ρ‘Π±Π΅Ρ€, Ρ‡Ρ‚ΠΎ Π½Π΅ всСгда ΡƒΠ΄ΠΎΠ±Π½ΠΎ.
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Бписок смСТности (инцидСнтности)
Если количСство Ρ€Π΅Π±Π΅Ρ€ Π³Ρ€Π°Ρ„Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с количСством Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΎ, Ρ‚ΠΎ значСния Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ 0. ΠŸΡ€ΠΈ этом использованиС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° нСцСлСсообразно. Для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ способы ΠΈΡ… прСдставлСния.

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ памяти списки смСТности ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Ρ‡Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности. Π’Π°ΠΊΠΎΠΉ список ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, столбцов Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ – 2, Π° строк β€” Π½Π΅ большС, Ρ‡Π΅ΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½ Π² Π³Ρ€Π°Ρ„Π΅.
Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ столбцС ΡƒΠΊΠ°Π·Π°Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ столбцС – список Π²Π΅Ρ€ΡˆΠΈΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Ρ€Π΅Π±Ρ€Π° ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹.Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° списка смСТности:

НСдостатки списка смСТности:

Алгоритмы ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΎΠ²

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΏΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ исслСдованиС Π³Ρ€Π°Ρ„Π°:

Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² порядкС возрастания ΠΈΡ… расстояния ΠΎΡ‚ корня.
Алгоритм ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ послС ΠΎΠ±Ρ…ΠΎΠ΄Π° всСх Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°, Π»ΠΈΠ±ΠΎ Π² случаС выполнСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ условия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ 1 Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ 6).
КаТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· 3 состояний:

Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ – рассматриваСмая Π²Π΅Ρ€ΡˆΠΈΠ½Π°.
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ

Алгоритм поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„Π°Ρ….
Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

РСализация Π½Π° C++ (с использованиСм ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ STL)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π—Π°Π΄Π°Ρ‡Π° поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ
РСализация Π½Π° Π‘++

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ – это Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°.

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ производится симмСтрично (Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π° ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΠΎ уровням). Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π³Π»ΡƒΠ±ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ продвиТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° послСдний, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² двиТСния (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… исслСдован ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ), Ρ€Π°Π½Π΅Π΅ посСщСнный ΡƒΠ·Π΅Π» (Π²Π΅Ρ€ΡˆΠΈΠ½Π°).

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ послСднСго ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ситуаций:

КаТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· 3 состояний:

Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ – рассматриваСмая Π²Π΅Ρ€ΡˆΠΈΠ½Π°.
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ

Алгоритм поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„Π°Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.
Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стСк ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ.

РСализация Π½Π° C++ (с использованиСм стСка STL)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
Π—Π°Π΄Π°Ρ‡Π° поиска лСксикографичСски ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π½Π° Π³Ρ€Π°Ρ„Π΅.
РСализация Π½Π° C++

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ
Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с использованиСм рСкурсивного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

РСализация ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„Π° Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π½Π° C++ (с использованиСм рСкурсии)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“Ρ€Π°Ρ„Ρ‹: основы Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Aug 22, 2020 Β· 6 min read

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с понятиСм спортивного программирования ΠΈ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ тСхничСскиС знания ΠΎ структурах Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ….

Одной ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… спортивного программирования являСтся ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΠΌ большоС количСство Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π² Ρ‚ΠΎΠΌ числС всС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… понадобится Π²Π°ΠΌ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΈΠ· Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ΄Π½ΠΈΡ… тСорСтичСских Π·Π½Π°Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² нСдостаточно, ΠΈ Π²Π°ΠΌ придётся Π½Π°Π±ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΡƒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ практичСских Π·Π°Π΄Π°Ρ‡ Π½Π° Ρ‚Π°ΠΊΠΈΡ… сайтах, ΠΊΠ°ΠΊ Codeforces. Настоящая ΠΆΠ΅ ΡΡ‚Π°Ρ‚ΡŒΡ прСдставит Π²Π°ΠΌ инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для освоСния Π²Π°ΠΆΠ½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π˜Ρ‚Π°ΠΊ, приступим.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„?

Π“ Ρ€ Π°Ρ„Ρ‹, Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ программистов, β€” это Π½Π΅ Ρ‚Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ Π² школС. Π­Ρ‚ΠΎ Π½Π΅ столбиковыС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ гистограммы.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ ΠΈ дискрСтной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π³Ρ€Π°Ρ„Ρ‹ β€” это абстрактный способ прСдставлСния Ρ‚ΠΈΠΏΠΎΠ² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΡ€ΠΎΠ³, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… Π³ΠΎΡ€ΠΎΠ΄Π°, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² сСтСй. Π“Ρ€Π°Ρ„Ρ‹ состоят ΠΈΠ· Ρ€Ρ‘Π±Π΅Ρ€ ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½. Π’Π΅Ρ€ΡˆΠΈΠ½Π° β€” это Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π³Ρ€Π°Ρ„Π΅, Π° Ρ€Π΅Π±Ρ€ΠΎ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ соСдиняСт Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Π³Ρ€Π°Ρ„Π΅.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π’ условиях Π·Π°Π΄Π°Ρ‡ ΠΈΠ· Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ говорится ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, ΠΊΠ°ΠΊ сСти ΠΈ Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ.

Π’ΠΎΡ‚ список всСх Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², относящихся ΠΊ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ… Π² ΠΊΠΎΠ΄Π΅, сначала Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ осущСствляСтся прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅. Π’Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° C++, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для спортивного программирования я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΠΌΠ΅Π½Π½ΠΎ этот язык Π·Π° Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ написаниС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Ρ‡.

Π‘ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π° способа прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ²: ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности ΠΈ списки смСТности. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π²Π°ΠΌ пригодится прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ списка смСТности.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности прСдставляСт собой Π³Ρ€Π°Ρ„ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ V x V, Π³Π΄Π΅ V β€” количСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° VΒ² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ E (числу Ρ€Ρ‘Π±Π΅Ρ€), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Π³Ρ€Π°Ρ„ ΠΏΠ»ΠΎΡ‚Π½Ρ‹ΠΉ. Π—Π°ΠΏΠΈΡΡŒ a_ij ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, сколько Ρ€Ρ‘Π±Π΅Ρ€ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ i ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ j.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Бписки смСТности

Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный способ прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ β€” списки смСТности. Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создаётС списки сосСдСй для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ всС эти списки Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ список. Π˜Ρ… Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² Π³Ρ€Π°Ρ„Π΅ нСбольшоС количСство Ρ€Ρ‘Π±Π΅Ρ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Π³Ρ€Π°Ρ„ Ρ€Π°Π·Ρ€Π΅ΠΆΡ‘Π½Π½Ρ‹ΠΉ. Если Ρƒ вас Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„, Ρ‚.Π΅. ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ€Π΅Π±Ρ€ΠΎ Π³Ρ€Π°Ρ„Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ вСс, Ρ‚ΠΎ Π² спискС Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Ρ‹ для Ρ€Ρ‘Π±Π΅Ρ€ (сосСд, вСс).

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„Ρ‹ Π² ΠΊΠΎΠ΄Π΅, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…! Начнём с поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ (DFS) ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ поиском Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ (BFS). Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска ΠΏΡƒΡ‚ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ здСсь Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ (ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ΡΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π‘Π΅Π»Π»ΠΌΠ°Π½Π°-Π€ΠΎΡ€Π΄Π°).

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…. Он примСняСтся для поиска расстояния ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ€ΡˆΠΈΠ½ Π² Π³Ρ€Π°Ρ„Π΅. Π­Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π°.

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π³Ρ€Π°Ρ„Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠΊ: посСщённая ΠΈΠ»ΠΈ Π½Π΅ посСщённая. Алгоритм ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅Ρ‰Ρ‘Π½Π½ΡƒΡŽ, Ссли удаётся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ². Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΎΠ². ВмСстС с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ поиска Π²Π³Π»ΡƒΠ±ΡŒ ΠΎΠ½ составит Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сорСвнований ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ‚Π΅Ρ… ΠΈΠ· Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎ относятся ΠΊ Π³Ρ€Π°Ρ„Π°ΠΌ.

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π³Ρ€Π°Ρ„Π΅ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ: посСщённых ΠΈΠ»ΠΈ нСпосСщённых. И Ρ†Π΅Π»ΡŒ Ρƒ ΠΎΠ±ΠΎΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅: ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π³Ρ€Π°Ρ„Π΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅Ρ‰Ρ‘Π½Π½ΡƒΡŽ, Ссли удаётся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ². Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ. Однако вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π²Π½ΠΈΠ· ΠΏΠΎ Π²Π΅Ρ‚Π²ΠΈ Π³Ρ€Π°Ρ„Π° ΠΈΠ»ΠΈ Π΄Π΅Ρ€Π΅Π²Π°, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Освоив Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΠΊΠ°ΡΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π΄Π²ΡƒΡ… самых Π²Π°ΠΆΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±Ρ…ΠΎΠ΄Π° Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, Π²Π°ΠΌ остаётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π² сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π― Π±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» для Π½Π°Ρ‡Π°Π»Π° Codeforces: Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π³Π°ΠΌΠΈ bfs ΠΈ dfs с Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠΌ Π΄ΠΎ 1400. Когда почувствуСтС, Ρ‡Ρ‚ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ с Π½ΠΈΠΌΠΈ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

ΠžΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π²Ρ‹ΠΊΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ алгоритмичСских Π·Π°Π΄Π°Ρ‡, особСнно Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Ρ‚ΡŒ Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ тСхничСскиС собСсСдования. Π’ΠΏΠ΅Ρ€Ρ‘Π΄ β€” ΠΊ успСхам!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π“Ρ€Π°Ρ„Ρ‹: основы Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с понятиСм спортивного программирования ΠΈ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ тСхничСскиС знания ΠΎ структурах Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ….

Одной ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… спортивного программирования являСтся ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΎΡ…Π²Π°Ρ‚ΠΈΠΌ большоС количСство Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π² Ρ‚ΠΎΠΌ числС всС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… понадобится Π²Π°ΠΌ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΈΠ· Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ΄Π½ΠΈΡ… тСорСтичСских Π·Π½Π°Π½ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² нСдостаточно, ΠΈ Π²Π°ΠΌ придётся Π½Π°Π±ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΡƒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ практичСских Π·Π°Π΄Π°Ρ‡ Π½Π° Ρ‚Π°ΠΊΠΈΡ… сайтах, ΠΊΠ°ΠΊ Codeforces. Настоящая ΠΆΠ΅ ΡΡ‚Π°Ρ‚ΡŒΡ прСдставит Π²Π°ΠΌ инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для освоСния Π²Π°ΠΆΠ½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π˜Ρ‚Π°ΠΊ, приступим.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„?

Π“Ρ€Π°Ρ„Ρ‹, Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ программистов, β€” это Π½Π΅ Ρ‚Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ Π² школС. Π­Ρ‚ΠΎ Π½Π΅ столбиковыС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ гистограммы.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ ΠΈ дискрСтной ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π³Ρ€Π°Ρ„Ρ‹ β€” это абстрактный способ прСдставлСния Ρ‚ΠΈΠΏΠΎΠ² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΡ€ΠΎΠ³, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… Π³ΠΎΡ€ΠΎΠ΄Π°, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² сСтСй. Π“Ρ€Π°Ρ„Ρ‹ состоят ΠΈΠ· Ρ€Ρ‘Π±Π΅Ρ€ ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½. Π’Π΅Ρ€ΡˆΠΈΠ½Π° β€” это Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π³Ρ€Π°Ρ„Π΅, Π° Ρ€Π΅Π±Ρ€ΠΎ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ соСдиняСт Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Π³Ρ€Π°Ρ„Π΅.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°Ρ„Π°

Π’ условиях Π·Π°Π΄Π°Ρ‡ ΠΈΠ· Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ говорится ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, ΠΊΠ°ΠΊ сСти ΠΈ Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ.

Π’ΠΎΡ‚ список всСх Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², относящихся ΠΊ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π° Π³Ρ€Π°Ρ„Π°Ρ… Π² ΠΊΠΎΠ΄Π΅, сначала Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ осущСствляСтся прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅. Π’Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° C++, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для спортивного программирования я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΠΌΠ΅Π½Π½ΠΎ этот язык Π·Π° Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ написаниС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Ρ‡.

Π‘ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π° способа прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ²: ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности ΠΈ списки смСТности. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π²Π°ΠΌ пригодится прСдставлСниС Π³Ρ€Π°Ρ„ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ списка смСТности.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности прСдставляСт собой Π³Ρ€Π°Ρ„ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ V x V, Π³Π΄Π΅ V β€” количСство Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° VΒ² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½ΠΎ E (числу Ρ€Ρ‘Π±Π΅Ρ€), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Π³Ρ€Π°Ρ„ ΠΏΠ»ΠΎΡ‚Π½Ρ‹ΠΉ. Π—Π°ΠΏΠΈΡΡŒ a_ij ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, сколько Ρ€Ρ‘Π±Π΅Ρ€ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ i ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ j.

Бписки смСТности

Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный способ прСдставлСния Π³Ρ€Π°Ρ„ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ β€” списки смСТности. Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создаётС списки сосСдСй для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ всС эти списки Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ список. Π˜Ρ… Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² Π³Ρ€Π°Ρ„Π΅ нСбольшоС количСство Ρ€Ρ‘Π±Π΅Ρ€, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Π³Ρ€Π°Ρ„ Ρ€Π°Π·Ρ€Π΅ΠΆΡ‘Π½Π½Ρ‹ΠΉ. Если Ρƒ вас Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„, Ρ‚.Π΅. ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ€Π΅Π±Ρ€ΠΎ Π³Ρ€Π°Ρ„Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ вСс, Ρ‚ΠΎ Π² спискС Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Ρ‹ для Ρ€Ρ‘Π±Π΅Ρ€ (сосСд, вСс).

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„Ρ‹ Π² ΠΊΠΎΠ΄Π΅, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…! Начнём с поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ (DFS) ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ поиском Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ (BFS). Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска ΠΏΡƒΡ‚ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ здСсь Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ (ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ΡΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π‘Π΅Π»Π»ΠΌΠ°Π½Π°-Π€ΠΎΡ€Π΄Π°).

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…. Он примСняСтся для поиска расстояния ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ€ΡˆΠΈΠ½ Π² Π³Ρ€Π°Ρ„Π΅. Π­Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π°.

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π³Ρ€Π°Ρ„Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠΊ: посСщённая ΠΈΠ»ΠΈ Π½Π΅ посСщённая. Алгоритм ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅Ρ‰Ρ‘Π½Π½ΡƒΡŽ, Ссли удаётся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ². Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΎΠ². ВмСстС с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ поиска Π²Π³Π»ΡƒΠ±ΡŒ ΠΎΠ½ составит Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сорСвнований ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ‚Π΅Ρ… ΠΈΠ· Π½ΠΈΡ…, Ρ‡Ρ‚ΠΎ относятся ΠΊ Π³Ρ€Π°Ρ„Π°ΠΌ.

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π³Ρ€Π°Ρ„Π΅ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ: посСщённых ΠΈΠ»ΠΈ нСпосСщённых. И Ρ†Π΅Π»ΡŒ Ρƒ ΠΎΠ±ΠΎΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅: ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π³Ρ€Π°Ρ„Π΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅Ρ‰Ρ‘Π½Π½ΡƒΡŽ, Ссли удаётся ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»ΠΎΠ². Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ. Однако вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π²Π½ΠΈΠ· ΠΏΠΎ Π²Π΅Ρ‚Π²ΠΈ Π³Ρ€Π°Ρ„Π° ΠΈΠ»ΠΈ Π΄Π΅Ρ€Π΅Π²Π°, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Освоив Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, ΠΊΠ°ΡΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π΄Π²ΡƒΡ… самых Π²Π°ΠΆΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±Ρ…ΠΎΠ΄Π° Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, Π²Π°ΠΌ остаётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π² сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π― Π±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» для Π½Π°Ρ‡Π°Π»Π° Codeforces: Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π³Π°ΠΌΠΈ bfs ΠΈ dfs с Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠΌ Π΄ΠΎ 1400. Когда почувствуСтС, Ρ‡Ρ‚ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ с Π½ΠΈΠΌΠΈ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

ΠžΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°Π²Ρ‹ΠΊΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ алгоритмичСских Π·Π°Π΄Π°Ρ‡, особСнно Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π°Ρ…, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Ρ‚ΡŒ Π½Π° сорСвнованиях ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ тСхничСскиС собСсСдования. Π’ΠΏΠ΅Ρ€Ρ‘Π΄ β€” ΠΊ успСхам!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„, классификация Π³Ρ€Π°Ρ„ΠΎΠ², рСализация Π½Π° C++

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„, классификация Π³Ρ€Π°Ρ„ΠΎΠ², рСализация Π½Π° C++

Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Ρ…ΠΎΠ΄Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ – количСство входящих Π² Π½Π΅Π΅ Ρ€Π΅Π±Π΅Ρ€, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π° – количСство исходящих Ρ€Π΅Π±Π΅Ρ€.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΠ§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„, классификация Π³Ρ€Π°Ρ„ΠΎΠ², рСализация Π½Π° C++

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π³Ρ€Π°Ρ„ΠΎΠ²

Π’ связном Π³Ρ€Π°Ρ„Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ любой ΠΏΠ°Ρ€ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½ сущСствуСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΡ‚ΡŒ.

Π’ нСсвязном Π³Ρ€Π°Ρ„Π΅ сущСствуСт хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π°, Π½Π΅ связанная с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π“Ρ€Π°Ρ„Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π°

Π’ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ Ρ€Π΅Π±Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‚.Π΅. сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ доступноС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя связными Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ.

Π’ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Ρ€Π΅Π±Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях.

Частный случай Π΄Π²ΡƒΡ… этих Π²ΠΈΠ΄ΠΎΠ² – ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„. Он Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π±Π΅Ρ€.

Бпособы прСдставлСния Π³Ρ€Π°Ρ„Π°

Π“Ρ€Π°Ρ„ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн (сохранСн) нСсколькими способами:

ИспользованиС Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹). Π Π°Π·ΠΌΠ΅Ρ€ массива зависит ΠΎΡ‚ количСства Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ/ΠΈΠ»ΠΈ Ρ€Π΅Π±Π΅Ρ€ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° смСТности Π³Ρ€Π°Ρ„Π° β€” это квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: 0 ΠΈΠ»ΠΈ 1.

Число строк ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности Ρ€Π°Π²Π½ΠΎ числу столбцов ΠΈ соотвСтствуСт количСству Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°.

Когда ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ свободСн (имССтся Ρ€Π΅Π±Ρ€ΠΎ), Π² ячСйку заносится 1, ΠΈΠ½Π°Ρ‡Π΅ – 0. ВсС элСмСнты Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Ρ€Π°Π²Π½Ρ‹ 0 Ссли Π³Ρ€Π°Ρ„ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ‚Π΅Π»ΡŒ.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° инцидСнтности (ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΈ) Π³Ρ€Π°Ρ„Π° β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, количСство строк Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ соотвСтствуСт числу Π²Π΅Ρ€ΡˆΠΈΠ½, Π° количСство столбцов – числу Ρ€Ρ‘Π±Π΅Ρ€. Π’ Π½Π΅ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ элСмСнтами Π³Ρ€Π°Ρ„Π° (Ρ€Π΅Π±Ρ€ΠΎ(Π΄ΡƒΠ³Π°) ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½Π°).

Π’ Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ Ссли Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π½Π° Ρ€Π΅Π±Ρ€Ρƒ Ρ‚ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Ρ€Π°Π²Π΅Π½ 1, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС элСмСнт Ρ€Π°Π²Π΅Π½ 0.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° инцидСнтности для своСго прСдставлСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Ρ‘Π±Π΅Ρ€, Ρ‡Ρ‚ΠΎ Π½Π΅ всСгда ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° инцидСнтности (ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ†ΠΈΠΈ) Π³Ρ€Π°Ρ„Π°

Бписок смСТности (инцидСнтности)
Если количСство Ρ€Π΅Π±Π΅Ρ€ Π³Ρ€Π°Ρ„Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с количСством Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΎ, Ρ‚ΠΎ значСния Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ 0. ΠŸΡ€ΠΈ этом использованиС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° нСцСлСсообразно. Для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ способы ΠΈΡ… прСдставлСния.

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ памяти списки смСТности ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Ρ‡Π΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности. Π’Π°ΠΊΠΎΠΉ список ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, столбцов Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ – 2, Π° строк β€” Π½Π΅ большС, Ρ‡Π΅ΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½ Π² Π³Ρ€Π°Ρ„Π΅.
Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ столбцС ΡƒΠΊΠ°Π·Π°Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ столбцС – список Π²Π΅Ρ€ΡˆΠΈΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Ρ€Π΅Π±Ρ€Π° ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² программированииБписок смСТности (инцидСнтности)

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° списка смСТности:

НСдостатки списка смСТности:

Бписок Ρ€Ρ‘Π±Π΅Ρ€
Π’ спискС Ρ€Ρ‘Π±Π΅Ρ€ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²Π΅ смСТныС Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΈ вСс ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΡ… Ρ€Π΅Π±Ρ€Π° (для взвСшСнного Π³Ρ€Π°Ρ„Π°).
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк Π² спискС Ρ€Π΅Π±Π΅Ρ€ всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ слоТСния ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Ρ‘Π±Π΅Ρ€ с ΡƒΠ΄Π²ΠΎΠ΅Π½Π½Ρ‹ΠΌ количСством Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Ρ‘Π±Π΅Ρ€.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² программированииБписок Ρ€Ρ‘Π±Π΅Ρ€

Алгоритмы ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΎΠ²

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ ΠΏΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ исслСдованиС Π³Ρ€Π°Ρ„Π°:

Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² порядкС возрастания ΠΈΡ… расстояния ΠΎΡ‚ корня.
Алгоритм ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ послС ΠΎΠ±Ρ…ΠΎΠ΄Π° всСх Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°, Π»ΠΈΠ±ΠΎ Π² случаС выполнСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ условия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΉΡ‚ΠΈ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ 1 Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ 6).
КаТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· 3 состояний:

Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ – рассматриваСмая Π²Π΅Ρ€ΡˆΠΈΠ½Π°.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ

Алгоритм поиска Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„Π°Ρ….
Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

РСализация Π½Π° C++ (с использованиСм ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ STL)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния

Π—Π°Π΄Π°Ρ‡Π° поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ
РСализация Π½Π° Π‘++

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ – это Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π²Π΅Ρ€ΡˆΠΈΠ½ Π³Ρ€Π°Ρ„Π°.

Поиск Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ производится симмСтрично (Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π³Ρ€Π°Ρ„Π° ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΠΎ уровням). Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π³Π»ΡƒΠ±ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ продвиТСния ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° послСдний, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² двиТСния (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… исслСдован ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ), Ρ€Π°Π½Π΅Π΅ посСщСнный ΡƒΠ·Π΅Π» (Π²Π΅Ρ€ΡˆΠΈΠ½Π°).

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ послСднСго ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ситуаций:

КаТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· 3 состояний:

Π€ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ – рассматриваСмая Π²Π΅Ρ€ΡˆΠΈΠ½Π°.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€Π°Ρ„ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ

Алгоритм поиска Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π½Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„Π°Ρ…. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.
Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стСк ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ.

РСализация Π½Π° C++ (с использованиСм стСка STL)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния

Π—Π°Π΄Π°Ρ‡Π° поиска лСксикографичСски ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ Π½Π° Π³Ρ€Π°Ρ„Π΅.
РСализация Π½Π° C++

Поиск Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с использованиСм рСкурсивного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

РСализация ΠΎΠ±Ρ…ΠΎΠ΄Π° Π³Ρ€Π°Ρ„Π° Π² Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π½Π° C++ (с использованиСм рСкурсии)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *