Pereiti prie turinio

Olimpiados užduotys


Rekomenduojami pranešimai

Kad lengvas branakmenaii tai jo, bet kaip parašyti, kad man iš to masyvo imtu dvi didžiausias reikšmes. O kaip su šaškėm reikėjo tikrinti, kad pvz 1 šaškė gali kirsti 3 (baltą)

 

Brangakmenius galimėjo spręsti labai paprastai. Susikuri du masyvus vieną raudoniems kitą mėlyniems. Išrikiuoji abu masyvus mažėjimo tvarką(patogiau) su kokiu nors rikiavimo algoritmu pvz quick sort (teoriškai rikiavimas burbuliuku turėjo nepraeit, bet rodos praėjo visus testus). Ir tada tiesiog paimt iš eilės reikšmes iš masyvų pagal tai kiek signalizacijų išjungta ir pridėt visų paimtųjų vertes į kažkokį kintamąjį pvz suma.

 

Su šaškėm gal šiek tiek sudėtingiau. Mąsčiau apie du sprendimo būdus. Sumąsčiau tiesiog išsaugot du masyvus vieną juodų kitą baltų šaškių. Ir tada tikrint ar i+1, u+1 laukelį ir i-1, u+1 laukelį stovi balta šaškę bei patikrint ar i+2 ir u+2, į kitą pusę kirtimui i-2 u+2 yra neužimtas kokios kitos šaškės bei patikrint ar neišėjai už lentos ribų.

Idėja kitokiam sprendimo būdui kilo kai buvau pradėjęs rašyt aną. Išsaugot baltųjų ir juodųjų šaškių koordinates dvimačiam masyve ir tada bandyt kirtinėt. Šitas šiek tiek efektyvesnis būtų, bet praeina abu laisvai, nes šaškių nedaug.

 

Būtų labai įdomu pamatyti jaunesniųjų grupės teorinę užduotį :D Jei kas turit įmeskit.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Brangakmenius galimėjo spręsti labai paprastai. Susikuri du masyvus vieną raudoniems kitą mėlyniems. Išrikiuoji abu masyvus mažėjimo tvarką(patogiau) su kokiu nors rikiavimo algoritmu pvz quick sort (teoriškai rikiavimas burbuliuku turėjo nepraeit, bet rodos praėjo visus testus). Ir tada tiesiog paimt iš eilės reikšmes iš masyvų pagal tai kiek signalizacijų išjungta

o kodėl burbulinis rikiavimas neturėjo praeitį?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš manau, kad čia rikiavimas buvo tikrai nereikalingas. Rikiuojant quick sort'u blogiausiu atveju vienai spalvai brangakmenių gaunasi r*r(arba m*m) + apsr(apsm) paimti pirmus išrikiuotus masyvo elementus. Jeigu ieškant apsr(apsm) kartų masyve didžiausių reikšmių tai blogiausiu atveju būtų r*apsr ir m*apsm.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

parodykit kas šaškes kaip išsprendėt :D aš vapščė nieko ten nesupratau net ką daryt, visiškai žalią mane įkišo :D įdomu ar bent link tos pusės pasprendžiau :lol:

http://pastebin.com/99MPjg43 :)

 

pats gyvatės nepadariau, bet idėją turiu. Reikia nustatyt senosios gyvatės tolimiausias koordinates viršuj ir apačioj, rast pro viršų ar pro apačią nušliaužt trumpiau, o tada iki finišo.

laikas_aukstyn := Abs(pradzia.y - max_y) + 1 + abs(pradzia.x - pabaiga.x) + abs(pabaiga.y - max_y) + 1;
laikas_zemyn := Abs(pradzia.y - min_y) + 1 + abs(pradzia.x - pabaiga.x) + abs(pabaiga.y - min_y) + 1;
if laikas_aukstyn > laikas_zemyn then
laikas := laikas_zemyn
else
laikas := laikas_aukstyn;

va mano algoritmas :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...