← Back to topics
Topic

Not a triangle & Z-zidar

V
Vidakovic
Molim za pomoc oko zadataka Not a triangle & Z-zidar! Koja je ideja? Kako da se odradi? Hvala unapred!
m
matteo123
ja bi isto htio ideju za not a triangle
d
demjan0001
not a triangle:
pa za stranice trougla postoji nejednakost: a + b > c ...
ako se degenerisani trougao smatra trouglom onda je nejednakost: a + b >= c
e pa ako uzmes 2 stapica (ili sta su vec) koja recimo imaju duzine l1 i l2, onda treba da odaberes 3. stapic tako da vazi l1 + l2 < l3 !!!
znaci da treba za svaki par (i,j) da izracunas koliko ima stapica koji imaju duzinu vecu od duzina(i) + duzina(j) ...


z-zidar:
pa ovde primenis pitagorinu teoremu: c^2 = a^2 + b^2 (gde je c dijagonala pravouglog trougla, a a i b katete) ...
pa za svaka dva stapa vidis da li je koren(a^2 + b^2) prirodan broj i da li postoji stap sa tom duzinom ...

ako treba jos neka pomoc pitaj ...
V
Vidakovic
Na tvoju ideju Z-zidar mi prodje samo 5/20 a na ostalima vraca TLE. Imas li kakvu ideju da ubrzam kod?
d
demjan0001
ja sam ti dao samo ideju, a ne citavo resenje ...
kao i u prvom zadatku ...
ako hoces za prvi zadatak citavo resenje napisacu ga ...
V
Vidakovic
Dobro bi mi doslo! Ali bolje je da mi ipak,ako vec hoces,da napises resenje za drugi(Z-zidar),bolje bi mi doslo,ali svejedno,kako je tebi lakse!
d
demjan0001
z-zidar:

ideja: pa napravis niz sa boolean-ima gde postavis na true sve vrednosti koje imas za duzinu dasaka, tako da ces u O(1) znati da li postoji neka daska sa duzinom L ...
i sada za svake 2 daske (pazis da ti se ne ponavljaju daske) gledas da li je sqrt( sqr(L1) + sqr(L2) ) prirodan broj, ako jeste onda pogledas da li postoji daska duzine sqrt( sqr(L1) + sqr(L2) ) ...
odnosno ti gledas da li za neki par dasaka postoji daska koja moze da bude hipotenuza pravouglog trougla, gde su L1 i L2 katete ...


Removed
d
demjan0001
not a triangle:

ideja: pa vec sam objasnio ideju, ali nisam rekao kako da u O(1) dobijes koliko ima stapica vecih od L1 + L2 (L1 i L2 su duzine neka 2 stapica) ...
pa to ces uraditi sa nizom u kome ce s[L] znaciti koliko ima stapica koji su jednaki ili veci od duzine L ...
e sada kako ces napuniti taj niz ...
pa ako za svaki stapic koji ima duzinu L povecas s[L] za jedan, onda ce ti s[L] znaciti koliko je stapica sa duzinom L ...
ali kako bi dobio da s[L] drzi podatak koliko je stapica koji su >= L po duzini, onda ce biti s[L] = s[L] + s[L+1] + s[L+2] ... + S[L+MaxDuzina] ...
odnosno ako budes radio od nazad niz s mozes da napunis u O(MaxDuzina) jer ce ti s[L] = s[L] + s[L+1] ...


Removed
d
demjan0001
nadam se da sam pomogao ... :D
V
Vidakovic
Hvala mnogo na pomoci!
m
matteo123
Može pomoć oko Not a triangle?

evo tu je link: http://z-trening.com/submit.php?submit=7100150721&subm_code=1
d
demjan0001
@matteo123: pa tvoje resenje radi u O( N^2*logN ), sto je 2000*2000*11 = 44 000 000, sto je previse operacija za 0.5 sekundi, gore sam objasnio kako da izbacis ovo logN i onda ces dobiti slozenost O( N^2 ) sto ce proci ...
m
matteo123
Jel možeš malo bolje objasniti ideju?
M
MilosRadic
stvar je da ne radis binarnu pretragu...nego da skaldistis za svaki stapic kolko stapica ima vecih od tog sto moze pre pretrage da se uradi u O(n)
e
elvircrn
hvalal demjane mnogo za z-zidar
k
kinezizbosne
demjan0001

Ja sam koristio slicnu ideju kao sto si ti predlozio za resavanje zadatka not a triangle. Medjutim, dobijam WA na 4. testa, ne mogu da vidim gdje je greska pa bi mi pomoc dobro dosla..:)

http://z-trening.com/submit.php?submit=7100338455&subm_code=1
h
halil
@k(i)nezizbosne: Testiraj se:
5
1 2 4 5 5
ili
1 3 5 5 7
ili
1 2 4 4 4
k
kinezizbosne
Mozes li mi dati jos neki primjer? Kada ispravim gresku koju pravi na ovom testu prodjem 4/10 a prije toga je bilo 6/10.
za 1 2 4 5 5 rezultat: 3

1 3 5 5 7 rez: 5

1 2 4 4 4 rez: 3

je li to u redu?
k
kinezizbosne
Pa to mi moj kod i daje. Negdje drugo je problem.
http://z-trening.com/submit.php?submit=7100338534&subm_code=1

U svakom slucaju hvala! :)
h
halil
Testorao sam tvoj kod od pre (6/10). Mogu probati i poslednji.
k
kinezizbosne
evo linka: http://z-trening.com/submit.php?submit=7100338534&subm_code=1
h
halil
2 3 7 7 9. res=3, ne 5