Afişează mesaje
Pagini: 1 ... 9 10 [11] 12 13
251  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 754 Morcovi : Octombrie 07, 2012, 13:57:24
Puteti sa mariti limita de timp? Se pot lua maxim 80 de puncte, cu parsare. Multumesc anticipat!
252  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 141 Sortari : Octombrie 04, 2012, 14:33:28
Incearca cu back simplu, nu pe biti.  Ok
253  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 957 Jap2 : Septembrie 10, 2012, 17:12:53
Salut!
Am rezolvat problema astfel :
 - am determinat puterea la care apare P in N! in O ( log P N ) , folosind o formula;
 - am gasit , daca mai este cazul , N! % P ignorand toti factorii lui P din N! , in O (log P N * log 2 P ).
  Primul logaritm vine de la descompunerea lui N! in factoriale mai mici care se repeta din P in P , iar al doilea de la ridicare la putere. Am incercat si ridicarea la putere pe biti insa nu reusesc sa scap de TLE pe 11 teste. Operatiile necesare le fac pe long long , iar operatia rest nu imi dau seama cum s-o inlocuiesc cu scadere.

Ce as mai putea optimiza pentru ca sursa sa intre in timp? ( am citit solutia oficiala si are aceasi complexitate , l-am rugat pe Popa Mihai sa trimita sursa lui care lua 100 si acum primeste 70).
Multumesc anticipat!
254  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 361 Johnie : August 12, 2012, 13:34:11
Cam stransa limita de timp. Cu Hierholzer iau TLE pe 4 teste. Am renuntat la cautarea secventiala din stergere folosind hashing dar merge mai lent iar parsarea scade din timp , dar nu suficient. Complexitatea algoritmului este O(m). Ce as mai putea optimiza? Multumesc anticipat!
255  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 954 Tester : August 10, 2012, 16:21:12
Se mai poate lua 100 de puncte? Eu folosesc algoritmul pentru ciclu eulerian , iterativ, identic cu cel care ia 100 in arhiva educatonala si am TLE pe testul 8. Am implementat liste simplu inlantuite manual si TLE - ul ramane.

Am luat pana la urma 100 de puncte inlocuind doar listele care nu erau necesare cu vectori alocati static.
256  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 258 Alpin : August 09, 2012, 16:11:46
Vad ca ai si parsat citirea si tot ai un TLE. Asta e problema, complexitatea nu este cea optima, de aceea trebuie dinamica cu memoizare.
257  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 258 Alpin : August 09, 2012, 14:04:56
Tu iei incorect pentru ca abordarea ta este gresita. In primul rand trebuie sa faci un fel de Bellman-Ford adica in conditia asta :
Cod:
if( ii>=1 && jj>=1 && ii<=n && jj<=n &&  a[i][j] < a[ii][jj] ) {
d[ii][jj]=d[i][j]+1;
Q.push(mp(ii,jj));
}
Mai trebuie sa adaugi d[ ii ] [ jj ] < d[ i ] [ j ] + 1 si cred ca merge.In al doilea rand nu inteleg de ce introduci in coada casutele care au toti vecinii mai mici.Pentru exemplul tau respunsul corect este :
Cod:
5
1 3
1 4
2 4
3 4
4 4
Deci incepe in 1,3 pe care tu nu il introduci in coada. Insa oricum vei lua TLE pe cateva teste. Eu am rezolvat folosind dinamica cu memoizare. Daca nu te prinzi da-mi un PM.
258  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 213 Jocul : Iulie 26, 2012, 09:08:50
Poti face dinamica folosind doar ultima linie. Eu asa am scapat de TLE.
259  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 067 Triang : Iulie 25, 2012, 15:03:09
Uite aici un articol despre numere complexe : http://bacmd.com/attachments/186_numere_complexe.pdf .
Este destul de bun din cate am citit eu. Cat despre a doua intrebare... Stii ca tg a = m unde m=unghiul dintre axa OX si dreapta. Aflii unghiul a, si aduni/ scazi unghiul de rotatie, deci stii noua panta (trebuie sa tratezi cazurile particulare = atunci cand nu exista tangenta, si sa vezi in ce cadran(e) se afla segmentul.
260  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 067 Triang : Iulie 25, 2012, 14:38:37
Stii panta dreptrei (si neaparat un punct A care apartine dreptei, eventual mijlocul segmentului). Ai formula care spune ca daca doua drepte sunt perpendiculare atunci produsul pantelor este -1, deci afli panta noii drepte. Cunosti panta si un punct <=> ecuatia dreptei este d : y-yA=md(x-xA) .
Insa abordarea este greoaie si se poate pierde precizie . Daca ai notiuni de baza despre numere complexe , stii condititia ca un triunghi sa fie echilateral si gradul de dificultate al problemei se reduce foarte mult.
261  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 869 Reinvent : Iulie 12, 2012, 08:14:27
Pai in loc sa citesti numar cu numar citesti blocuri de caractere folosind functia fread.
Mai multe detalii aici : http://infoarena.ro/parsarea-numerelor
262  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 034 Ciclu Eulerian : Iulie 10, 2012, 09:06:55
Sursa oficiala ia 60 de puncte cu TLE pe ultimul test. Cred ca ar trebui marita putin limita de timp (pentru 100 de puncte trebuie parsata citirea).
263  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 171 Sum : Iulie 07, 2012, 14:34:19
Pentru ca tipul int lucreaza pe 32 de biti, iar long long pe 64. Astfel ca la fiecare operatie de inmultire, adunare , atribuire , etc. , procesorul are mai multi biti de prelucrat. Deci long long este mult mai incet decat int ,dar foarte folositor in unele cazuri.
264  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 576 Puteri2 : Iulie 05, 2012, 15:04:25
Multumesc amandurora pentru indicatii. O sa incerc sa vad ce iese.

PS : Am citit solutia oficiala pana la urma si am gasit 3 optimizari propuse : pe primele 2 le am deja, iar a treia : in cazul cautarii binare, intervalul initial de cautare nu trebuie sa fie [1,N], ci un interval mai restrans (de exemplu, [10 la (X/P)-1, 10 la (X/P)+1]), unde X este numarul de cifre ale numarului N dat. Nu imi dau seama de ce afirmatia este adevarata (  daca am baza 10000 atunci trebuie 10000 la puterile respective ) . Astfel scap de TLE dar iau incorect.
265  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 576 Puteri2 : Iulie 05, 2012, 10:58:36
Am implementat operatiile pe numere mari folosind baza 10000 si am un TLE pe al doilea test. Cu baza 1000000000 am din nou TLE pe testul al doilea. Folosesc cautarea binara. Am incercat si parsarea citirii cu fread dar tot TLE. Mentionez ca folosesc classes si aceleasi operatii pe numere mari ca la problema http://infoarena.ro/problema/numere2 unde am luat 100.
Trebuie cumva marita limita de timp sau mai trebuie sa fac ceva optimizari ( desi nu mai am nici o idee )?
266  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 840 Cuburi3 : Iunie 22, 2012, 17:48:26
Da, intradevar nu trebuie long long, insa este destul de ciudat ce se intampla. Nu trebuie neaparat sa folosesti AIT , merge si in complexitate patratica foarte repede deoarece n <= 4000. Incearca asa si vedem pa urma ce se intampla.
267  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Răspuns: Bug reports : Iunie 20, 2012, 18:30:04
La problema "Potrivire" in sectiunea "Scorul tau" imi apare 20 de puncte desi am obtinut 100.
268  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 007 Arbori de intervale : Iunie 20, 2012, 17:10:45
Incearca sa pui inline la functii iar apoi scapa de parametrii aceeia multi de la functii( de ultimii 2 ), ei se salveaza pe stiva pentru nimic. Tu oricum nu ii mai folosesti.
269  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 285 Geometry : Iunie 19, 2012, 16:05:25
Am gasit ceva interesant despre algoritmi si probleme de geometrie computationala aici :
http://campion.edu.ro/arhiva/index.php?page=paper&action=view&id=41
Sper sa fie de folos.
270  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1297 Potrivire : Iunie 17, 2012, 17:45:33
Multumesc. Am fost neatent, in loc de secventa m-am gandit la un caracter.
271  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1297 Potrivire : Iunie 17, 2012, 13:36:21
In enuntul problemei steluta este inlocuita de ce caracter?
272  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1297 Potrivire : Iunie 17, 2012, 12:28:13
Pentru testul:
Cod:
8 5
zxabedgh
*****
trebuie sa afiseze 1 1? Iar pentru
Cod:
 8 5
zxabedgh
**a**
1 4?
273  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 482 Pluton : Iunie 06, 2012, 15:37:47
Nu, nu vei primi niciun punct.http://infoarena.ro/documentatie/evaluator
Din cate am vazut eu tu nu primesti TLE ci SIGSEGV. Uite aici ( http://infoarena.ro/documentatie/borderoul-de-evaluare ) ce inseamna.
274  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 987 Binar : Iunie 04, 2012, 09:45:08
Eu inca mai iau 100 de puncte cu aceeasi sursa. Incercati sa optimizati programul, desi eu nu am cine stie ce optimizari.
275  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Răspuns: Bug reports : Aprilie 24, 2012, 19:22:46
Exista un bug la problema Plus2. Daca postez un comentariu este afisat la problema Amedie si cred ca exista o eroare in evaluator , iau 20 de puncte cu toate ca imi merg toate testele oficiale.
Pagini: 1 ... 9 10 [11] 12 13
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines