uždavinys “lenktyn Ė s” 2007, daugai vilius visockas
DESCRIPTION
Slide 1 of 316. Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas. Turinys. Uždavinio sąlygos pristatymas “ Paprastas ” uždavinio sprendimas “ Advance d ” uždavinio sprendimas Kaip nereikėjo daryti Tiesioginė lenktynės transliacija. S ąlygos pristatymas. Lenktyniauja N ma šinų. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/1.jpg)
Lenktynės
Uždavinys“LENKTYNĖS”
2007, DaugaiVilius Visockas
Slide 1 of 316
![Page 2: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/2.jpg)
Lenktynės
Turinys
• Uždavinio sąlygos pristatymas
• “Paprastas” uždavinio sprendimas
• “Advanced” uždavinio sprendimas
• Kaip nereikėjo daryti
• Tiesioginė lenktynės transliacija
![Page 3: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/3.jpg)
Lenktynės
Uždavinio lenktynės sprendimas
0
10
20
30
40
50
60
70
80
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
![Page 4: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/4.jpg)
Lenktynės
Sąlygos pristatymas
• Lenktyniauja N mašinų.
• Jos važiuoja įvairiais grečiais.
• Jos startuoja skirtingu laiku.
• Norime sužioti kaip išsidėstys po K pirmųjų lenkimų.
• Nėra dviejų lenkimų vienu metu
• Po K lenkimų visos mašinos bus jau išvažiavusios
![Page 5: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/5.jpg)
Lenktynės
Paprastas sprendimas(bet teisingas)
![Page 6: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/6.jpg)
Lenktynės
Sprendimas (1)
• Nagrinėti visas galimas mašinų poras (N x N), skaičiuoti jų lenkimosi laiką, laikus surikiuoti ir išrinkti K-jo lenkimo laiką.
• Apskaičiuoti kiekvienos mašinos nuvažiuotą atstumą po K-ojo lenkimo.
• Surikiuoti mašinas pagal nuvažiuotą atstumą.
![Page 7: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/7.jpg)
Lenktynės
Kaip nereikėjo spręsti (cont.)
1. “Vienos minutės” sprendimas
Daroma prielaida, kad per vienutę minutę
įvyksta ne daugiau nei vienas lenkimas, nors
sąlygoje pasakyta, kad tiesiog nėra jokių dviejų
lenkimų vienu metu.
![Page 8: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/8.jpg)
Lenktynės
Kaip nereikėjo spręsti (cont.)
Bėgiko ir vežlio paradoksas: bėgikas niekada neaplenks vėžlio!
![Page 9: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/9.jpg)
Lenktynės
Sprendimasnaudojant Heap duomenų struktūrą
![Page 10: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/10.jpg)
Lenktynės
Faktai
• Įmanomas daugiausiai vienas lenkimas imant bet kokią mašinų porą.
• Lenkimo tarp dviejų mašinų gali ir nebūti.
• Jei mašinos važiuoja vienodu greičiu, lenkimo nebus niekada.
• Lenkimas bus tik tada, jei viena mašina važiuoja greičiau už kitą ir išvažiuoja vėliau.
![Page 11: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/11.jpg)
Lenktynės
Sprendimas naudojant heap’ą.• Susirikiuojame mašinas pagal išvykimo laiką
Pastaba. skaičius - mašinos numeris
1
laikasstartas greitis
1000 500
300 500
200 600
900 200
1200 300
2
3
4
5
![Page 12: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/12.jpg)
Lenktynės
Sprendimas naudojant heap’ą.
3 2 4 1 5
• Tikriname ar gretimos mašinų poros lenkiasi.
• Jeigu lenkiasi, lenkimo įvykį dedame į heap’ą.
![Page 13: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/13.jpg)
Lenktynės
Kas tas
“HEAP’as” ???
Paspauskite čia ir sužinosite kas yra heapas!
![Page 14: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/14.jpg)
Lenktynės MAGIC BUTTON X
![Page 15: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/15.jpg)
Lenktynės MAGIC BUTTON X
![Page 16: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/16.jpg)
Lenktynės
Heap’as
• Duomenų struktūra, gebanti– Greitai surasti mažiausią elementą– Ištrinti/Pašalinti elementą.
Puikiai pritaikomas Dijikstros algoritmui.
![Page 17: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/17.jpg)
Lenktynės
Heap’as2
9 6
10 15 8
Heap’as – pilnas dvejetainis medis
Kiekvienas iš vaikų yra didesnis už tėvą
![Page 18: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/18.jpg)
Lenktynės
Heap’asElemento įterpimas (1)
2
9 6
10 15 8
Pirmas elementas dedamas pirmoje laisvoje vietoje.
![Page 19: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/19.jpg)
Lenktynės
Heap’asElemento įterpimas (2)
2
9 6
10 15 8 1
Pirmas elementas dedamas pirmoje laisvoje vietoje.
![Page 20: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/20.jpg)
Lenktynės
Heap’asElemento įterpimas (3)
2
9 6
10 15 8 1
Kad būtų išlaikytos heap’o savybės, reikia lyginti jį su tėvu.
Jei naujas narys mažesnis – sukeičiame.
![Page 21: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/21.jpg)
Lenktynės
Heap’asElemento įterpimas (4)
2
9 1
10 15 8 6
Kartojame lyginimą sukeistam elementui.
Einam link medžio viršūnės – panašiai kaip rikiavimas įterpimu.
![Page 22: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/22.jpg)
Lenktynės
Heap’asElemento įterpimas (5)
1
9 2
10 15 8 6
![Page 23: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/23.jpg)
Lenktynės
Heap’asElemento įterpimas (6)
1
9 2
10 15 8 6
Baigiame, kai:
• Prieiname medžio šaknį.
• Nebereikia sukeisti elementų.
![Page 24: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/24.jpg)
Lenktynės
Heap’asElemento įterpimas
![Page 25: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/25.jpg)
Lenktynės
Heap’asElemento įterpimas
2
9 6
10 15 8 1
![Page 26: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/26.jpg)
Lenktynės
Heap’asElemento įterpimas
2
9
610 15 8
1
![Page 27: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/27.jpg)
Lenktynės
Heap’asElemento įterpimas
1
9 2
10 15 8 6
Baigiame, kai:
• Prieiname medžio šaknį.
• Nebereikia sukeisti elementų.
![Page 28: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/28.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
![Page 29: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/29.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
1
9 2
10 15 8 6
Visada šakninė viršūnė, pagal jo savybes.
Mažiausias elementas
Mažiausia elementą įsimename, o vietoj jo įrašome paskutinį heap’o elementą.
Sumažiname heapo dydį.
![Page 30: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/30.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
1
9 2
10 15 8 6
Paskutinis elementas
![Page 31: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/31.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
6
9 2
10 15 8
Bet šakninė viršūnė dabar pažeidžia heap’o savybes.
Šakninė viršūnė (6) didesnė už 2.
![Page 32: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/32.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
6
9 2
10 15 8
Ją sukeisime su mažesne iš jos vaikų.
![Page 33: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/33.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
6
9 2
10 15 8
Jeigu sukeistam elementui vėl pažeistume heapo savybę, reiktų padaryti dar vieną sukeitimą.
![Page 34: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/34.jpg)
Lenktynės
Heap’asMažiausio elemento išėmimas
6
9 2
10 15 8
Vėl turime heap’ą...
![Page 35: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/35.jpg)
Lenktynės
? ?
?
?
?
Grįžti prie sprendimo
![Page 36: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/36.jpg)
Lenktynės
Sprendimas naudojant heap’ą.
3 2 4 1 5
• Surikiuojame mašinas pagal starto laiką
• Tikriname ar gretimos mašinų poros lenkiasi.
• Jeigu lenkiasi, lenkimo įvykį dedame į heap’ą(raktas – apskaičiuotas lenkimosi laikas)
Ar trečia lenkia antrą?
Ar antra lenkia ketvirtą?
Ar ketvirta lenkia pirmą?
Ar pirma lenkia penktą?
![Page 37: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/37.jpg)
Lenktynės
Sprendimas naudojant heap’ą.
3 2 4 1 5
• Paeiliui išiminėjame įvykius iš heap’o (K kartų), ir:
• Imituojame lenkimą: greitesnę mašina lenkia lėtesnę• Sukeičiame mašinas• Patikriname ar aplenktos mašinos nesiveja dar kita mašina
Jei taip, įvykį vėl dedame į heapą.
• Patikriname ar lenkusi mašina lenks dar kitąJei taip, įvykį vėl dedame į heapą.
![Page 38: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/38.jpg)
Lenktynės
Tikrinimas ar mašina lenkia kitąKada A aplenks mašiną B? Tarkime tas laikas yra x, ir
A B
Starto laikas TA TB
Greitis GA GB
(x – TA) * GA = (x – TB) * GB;
x * GA – TA * GA = x * GB – TB * GB;
x * (GA - GB) = TA * GA – TB * GB;
x = (TA * GA – TB * GB) / (GA – GB)
![Page 39: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/39.jpg)
Lenktynės
PastabosRealieji skaičiai.
Visiškai teisingame sprendime lenkimo laikas turėjo būti saugomas trupmenoje, nes lyginant realiuosius skaičius galima paklaida, ypač kai lenkimai yra labai artimi.
![Page 40: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/40.jpg)
Lenktynės
Atvejų nagrinėjimas
• Mašinos juda vienodu greičiu.
WW Golf 1
WW Golf 1
• Mašinos niekada nelenkia viena kitos.
![Page 41: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/41.jpg)
Lenktynės
Atvejų nagrinėjimas• Mašinos juda nevienodu greičiu.• Greitesnė mašina startuoja vėliau
WW Golf 1
Mercedes
• Mašinos niekada nelenkia viena kitos.
![Page 42: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/42.jpg)
Lenktynės
Atvejų nagrinėjimas• Mašinos juda nevienodu greičiu.• Greitesnė mašina startuoja anksčiau
WW Golf 1
Mercedes
Greitesnė mašina lenkia lėtesnę
![Page 43: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/43.jpg)
Lenktynės
Didžioji “Viliaus” taurė
![Page 44: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/44.jpg)
Lenktynės
WW Golf 1
Mercedes
R
# Vilius has signed in.
9.25 [ Vilius ] Adomai, lenkimas :P
![Page 45: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/45.jpg)
Lenktynės
WW Golf 1
Mercedes
R
# Vilius has signed in.
9.28 [ Vilius ] Adomai, tuoj kartos lenkimą!9.28 [ Adomas ] Joa, matau krč…
# Vilius has signed off
![Page 46: Uždavinys “LENKTYN Ė S” 2007, Daugai Vilius Visockas](https://reader035.vdocuments.mx/reader035/viewer/2022062309/5681401c550346895dab6e65/html5/thumbnails/46.jpg)
Lenktynės
# Vilius has signed off
[Vilius] 19:21 Jeigu turite klausimų, galiu atsakyti
[Vilius] 19:21 Aj tiesa...
# Vilius has signed off
# Vilius has signed in