Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Stablo

[es] :: Art of Programming :: [Zadatak] Stablo

Strane: 1 2

[ Pregleda: 7732 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.11.*



+1 Profil

icon [Zadatak] Stablo12.06.2005. u 13:42 - pre 229 meseci
E (mozda je neko video ovu temu zbog ovog brisanja poruka), ovo evo muci me ovaj zadatak. Ja sam ga kao resio ali nemam test-primere pa...

Dato je stablo sa cvorova i prirodni broj . Sad cvorovi su kao gradovi a ivice putevi. Ukoliko vi postavite u nekom cvoru trzni centar on pokriva sve gradove koji su na manjoj ili jednakoj udaljenosti od mesta gde je postavljen trzni centar. Pitanje je koliki je minimalna broj trznih centara koji treba da se postave da bi oni pokrivali celo stablo, i za taj broj stampati gradove u kojima oni treba da se postave...

InPut
Prvi red:
2..N-ti red: sto znaci da su gradovi i spojeni

OutPut:
Prvi red: Minimalni broj centara
Drugi red: Lista od gradova gde treba postaviti trzne centre

Primer:
4 1
1 2
2 3
4 2

1
2
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

--SOULMaTe--
Nemanja Skoric
Novi Sad

Član broj: 1464
Poruke: 173
*.nat-pool.nsad.sbb.co.yu.



Profil

icon Re: [Zadatak] Stablo12.06.2005. u 17:30 - pre 229 meseci
Ja sam bio napisao nesto ovako:

Prvo pustim flojda na to stablo. I onda kreiramo graf takav da su dva cvora povezana samo ako su u tom K opsegu daljine. I opzimo one Dominatore grafa ili kako se zovu vec...



------
Malo kasnije... Hmm...n = 30000 ...floyd = O(n^3) ....tesko
Don’t do drugs, sleep deprivation is better.
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.11.*



+1 Profil

icon Re: [Zadatak] Stablo12.06.2005. u 18:03 - pre 229 meseci
Da, to sam i ja kasnije video. A drugo, ovaj Dominator je koliko ja znam NP problem... Zar ne?
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Srđan Krstić
Srđan Krstić
Princeton, NJ

Član broj: 7526
Poruke: 416
*.rcub.bg.ac.yu.

Jabber: srkiboy@elitesecurity.org
ICQ: 193836365
Sajt: www.princeton.edu/~skrsti..


Profil

icon Re: [Zadatak] Stablo12.06.2005. u 19:42 - pre 229 meseci
Bez ulazenja u tacnost algoritma, floyd je waaaaaaay out of limits, time-wise, a da ne pricamo o tome sto je trazenje dominirajuceg skupa u grafu definitivno np-problem...

I HAD A NIGHTMARE
IT ALL STARTED NORMAL
10101010
10110011
THEN ALL OF A SUDDEN
1100102
GAAAAH
_____________________________
www.princeton.edu/~skrstic
www.niwifi.co.sr
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.11.*



+1 Profil

icon Re: [Zadatak] Stablo12.06.2005. u 20:12 - pre 229 meseci
Da to stoji. Ali npr. ti u stablu ipak mozes da nadjes rastojanje izmedju cvorova u .

Moja ideja je (za koju nisam siguran da radi):
Nadjem centar stabla, sto je , a zatim nadjem udaljenost svih cvorova od njega, sto je takodje . E sad stalno cu da radim sledece: nadjem cvor koji je najudaljeniji od centra. Ako je njegova udaljenost manja ili jendaka onda stavim taj TC (sa TC cu da oznacujem trzni centar) u centru stabla. Ako je pak vece, onda idem od tog najudaljenijeg cvora ka centru stabla. Posle predjenih ivica tu postavim TC. Zatim od tog cvor gde sam postvio TC markiram sve cvorove koji su na manjoj ili udaljenosti od njega, i onda idem ponovo i razim najudaljeniji ne markirani cvor...

E to mu negde dodje stim sto ovde treba da ubacim i Heap gde cu da pamtim ova udaljenje od centra stabla...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

RooTeR
Rajko Nenadov
nema ga
Detelinara, NS

Član broj: 2386
Poruke: 385
195.252.87.*



Profil

icon Re: [Zadatak] Stablo12.06.2005. u 21:37 - pre 229 meseci
Hmmm, evo neka moja ideja, onako, na prvu loptu :)

Chvor cemo nazivati neobojenim ako u njegovoj k okolini ne postoji trzni centar.

Code:

Dokle god postoji neobojen chvor radi sledece
   uzmi chvor sa najvecim brojem grana;
   postavi TC u njega;
   oboji sve susede koji su udaljeni k ili manje od njega (pustimo dfs...);
 
kad to zavrshimo radimo sledece
za svaki chvor koji je TC proveravamo kakvi su njegovi susedi.
Ako je svaki njegov sused TC, onda on nece biti TC :)

I kad zavrshimo i ovo, ostace nam oni cvorovi koji pokrivaju celo stablo :)


Nisam siguran koliko ovaj algoritam daje tachno reshenje (nacrtao sam par primera, i na njima je funkcionisalo:)

slozenost ... hmmm ... pa na heapu bismo mogli da pamtimo koji je sledeci chvor sa najvecim brojem grana ... ma radice brzo :)



mmmmmm.. aahhhhhh..
e, nije sex nego serem!
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.11.*



+1 Profil

icon Re: [Zadatak] Stablo12.06.2005. u 22:25 - pre 229 meseci
Kontra primer:

7 1
1 2
1 3
1 4
2 5
3 6
4 7

Ti ces prvo uzeti 1 i markirati (1, 2, 3, 4). Zatim ces uzati 5, pa 6, pa 7. Tj. tvoje resenje ce biti 4 TC. A ukoliko stavis u 2, 3, 4 dobijas manje TC... Smrc...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

RooTeR
Rajko Nenadov
nema ga
Detelinara, NS

Član broj: 2386
Poruke: 385
195.252.87.*



Profil

icon Re: [Zadatak] Stablo12.06.2005. u 22:41 - pre 229 meseci
A ja bash hteo da postujem kakvu sam glupost napisao (pretekao si me:)... no dobro, bar sam pokushao :)


mmmmmm.. aahhhhhh..
e, nije sex nego serem!
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.11.*



+1 Profil

icon Re: [Zadatak] Stablo12.06.2005. u 23:27 - pre 229 meseci
Pa odmah si mogao da vidis da je tvoj algoritam greedy tako da... jbg...
Evo upravo sam radio jos jedan - ovaj uspesno :-)

Imate stablo (opet) sa cvorova. Stablo je u ovom slucaju tezinsko tj. za svaku granu je data i njena duzina. Treba napisati program koji za svaki cvor stampa duzinu najduzeg puta koji polazi iz njega...

InPut:
1 red: = Broj cvorova
2..N-tog reda: = cvorovi i su spojeni ivicom duzine

OutPut:
i-ti red: duzinu najduzeg puta koji polazi iz i-tog cvora

Primer:
3
1 2 2
1 3 1

2
3
3

Ogranicenja za ovaj zadatak je 0.2 sekunde tj. algoritam treba da ima slozenost ...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 09:15 - pre 229 meseci
Prvi zadatak mora da se radi rekurzivno, jer nema načina da znaš da li je dobar čvor koji si odabrao. Jedino ograničenje je da je postojanje svakog tržnog centra opravdano samo ako postoji bar jedan grad koji je pokriven samo ovim tržnim centrom. Tu je uključen i sam grad u kome je tržni centar.

Problem je što u traganju za sledećim tržnim centrom ne možemo da se ograničimo samo na "slobodne" gradove, jer može da se desi situacija da su sami tržni centri pokriveni drugim tržnim centrima, ali da ipak svaki tržni centar ekskluzivno pokriva bar jedan grad.
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.11.*



+1 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 09:38 - pre 229 meseci
Ne vidim zbog cega bi moralo da se radi rekuzivno?! A drugo mislim uvek mozemo da se ogranicimo na "slobodne gradove", jer za tebe uvek bolje da ga postavis na nekom "slobodnom", tj. ukoliko je resenje za K TC onda sigurno postoji takvo postavljanje TC u kome nijedan TC ne prektriva neki drugi TC... Zar ne!?
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 13:53 - pre 229 meseci
Sam si dao kontra primer. Nije trebalo birati 1 na početku nego 2, ali to ne možeš da znaš na početku, znači moraš rekurzivno da ispitaš sva moguća rešenja. A za slobodne gradove, evo primer:

6 1
1 2
1 3
1 4
2 5
2 6

Prvo biraš 1, i ostanu ti slobodni 5 i 6, i zato biraš oba... A mogao si samo 2, samo što nije slobodan grad.
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.12.*



+1 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 14:10 - pre 229 meseci
Znaci, niko nije rekao da ja biram 1. Moj algoritam se zasniva na to da uzmem najudaljeniji cvor 2, od centra stabla (sto je u tvom test primeru 1) pa u njega stavim. Sad vidim da je najudaljeniji nemarkirani cvor 3 i 4 a kako su oni udaljenik bas 1 onda stavim u centar stabla odnosno 1.

Ja samo kazem da jedino koji mogu da se poklope su centar stabla (da bude u neki TC i da u njemu bude TC), a ako ti radis rekurzivno (sto nisi rekao sta radis) onda OK... Ali ja i dalje ne vidm sta ti radis (mada to rekurzivno mnogo jede memoriju a i sporo je...)
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 16:48 - pre 229 meseci
Ne bi trebalo da o rekurziji razmišljaš kao o nečemu što je sporo i memorijski zahtevno, jer ni jedno ni drugo nije tačno (ako znaš šta radiš). Ono na šta sam ja tačno mislio otprilike ide ovako:

Za svaki ne-TC grad (bilo slobodan, bilo pokriven):
1. Pokrij oblast (svakom gradu TC-oblasti inkrementira se nivo "pokrivenosti", tj. broj TC-ova koji ga pokrivaju).
2. Da li je bar jedan grad iz oblasti prvi put pokriven (uključujući i sam novi TC)? Ako nije onda ukloni oblast i nastavi petlju.
3. Da li su svi gradovi pokriveni? Ako jesu zapamti rezultantni TC-skup (ako je manji od postojećeg), ukloni oblast i nastavi petlju. Ako nisu pozovi ovu funkciju rekurzivno i po izlasku iz funkcije ukloni oblast i nastavi petlju.

Postoji i jedno poboljšanje, markiranje gradova koji nikoga ne pokrivaju ekskluzivno (u koraku 2). U svim sledećim rekurzivnim pozivima (tj. pozivima u dubinu) njih ne uzimamo u obzir, ali moramo da skinemo oznaku sa njih pre nego što izađemo iz rekurzivne funkcije u kojoj smo ih označili...
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.12.*



+1 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 17:36 - pre 229 meseci
Ne ulazeci u tacnost algorimta (ali mislim da jeste tacan), njegova slozenost je sto je za nase ogranicenje smrt. Ovo sto ti radis je ustvari backtrack a trazi se algoritam za ...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 18:06 - pre 229 meseci
Otkud ?

E, pa ja sam tek sad skontao da mi pričamo o stablu, a ne o grafu! I još se pitam šta mu je ono "centar stabla" u grafu... Pardon, moje rešenje je za opšti slučaj
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.12.*



+1 Profil

icon Re: [Zadatak] Stablo13.06.2005. u 23:48 - pre 229 meseci
Da, da, da... :-)

Ovo, pa inace kolika je tvoja slozenost (vezano za bilo krakav graf)? Ti tu ides po skoro svim mogucnostima?! A drugo to za obican graf je sigurno mnogo, mnogo tezi problem od stabla, tako da to sigurno nije resenje (optimalno naravno).
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: [Zadatak] Stablo14.06.2005. u 11:05 - pre 229 meseci
Zaboravio sam već kako se računa ta složenost, pitao sam samo da vidim kako si ti došao do nje. Pošto algoritam pretražuje ceo skup mogućih rešenje možda je složenost i
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.12.*



+1 Profil

icon Re: [Zadatak] Stablo14.06.2005. u 12:02 - pre 229 meseci
Pa pazi slozenost tvog algoritma je negde jer ti otprilike svuda isprobas kako bi bilo da stavis TC ili ne, tako da (kao kad pravis binaran broj)
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

cassey
Andreja Ilic
Nis

Član broj: 57788
Poruke: 188
212.200.10.*



+1 Profil

icon Re: [Zadatak] Stablo16.06.2005. u 15:00 - pre 229 meseci
Resio sam i prvi zadatak! Ovo, da to je onaj algoritam koji sam opisao i njegova slozenost je (naravno nije rekurzivo)...
Math is like love. A simple idea but it can get complicated.
 
Odgovor na temu

[es] :: Art of Programming :: [Zadatak] Stablo

Strane: 1 2

[ Pregleda: 7732 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.