Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: 310 Secventa 5  (Citit de 10385 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« : Ianuarie 27, 2007, 18:18:48 »

Aici puteţi discuta despre problema Secventa 5.
« Ultima modificare: Ianuarie 30, 2007, 20:52:03 de către Crestez Dan-Leonard » Memorat
bigsarpe
Strain


Karma: -5
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #1 : Ianuarie 28, 2007, 15:02:03 »

 exista sursa de 100 in pascal?
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #2 : Ianuarie 31, 2007, 18:49:57 »

imi poate spune si mie cineva cat da pe testu
Cod:
20 5 15
10
11
8
7
7
20
11
9
9
6
10
8
11
20
9
7
5
5
11
10
mie imi da 123 atat cu solutia in n^2 cat si cu solutia in o(n). Ciudat insa ca pe infoarena amandoua iau 0 puncte. Si toate testele care le-am dat eu au mers (alea care le-am putut testa pe foaie).
PS: sper ca putem folosi map pe infoarena (chiar daca tre sa fac pana la urma hashingu de mana ca sa iau 100).
Memorat
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #3 : Ianuarie 31, 2007, 19:26:01 »

Ai avut grija sa citesti numerele pe unsigned?
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #4 : Ianuarie 31, 2007, 19:33:47 »

 Brick wall Brick wall Brick wall Brick wall Brick wall Brick wall Brick wall
damn it asta era, ms mircea akuma iau 60, cu TLE pe restu (probabil din cauza ca am le-am long long pe toate ptr a rezolva situatia mai repede si din cauza ca folosesc map).
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #5 : Ianuarie 31, 2007, 19:50:37 »

Tipul long long e de 4 ori mai incet decat int, asa ca incearca cu unsigned.
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #6 : Ianuarie 31, 2007, 19:56:22 »

si cu unsigned long int (formatul la citire am inteles ca e %lu) iau tot 60. Sa vad ce se intampla dupa ce implementez hashingu la mana, ptr ca pe map complexitatea e tot N log N.

[later edit] : am luat 90 cu hashingu de mana. ce functie de hashing ati folosit ptr 100??
« Ultima modificare: Ianuarie 31, 2007, 21:40:12 de către Savin Tiberiu » Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #7 : Ianuarie 31, 2007, 22:02:42 »

Aloci static tabela de hash? Mie mi-a mers cu cheia in jur de 200.000. (Poti folosi pentru mai multa eficienta 2 tabele de hash)
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #8 : Ianuarie 31, 2007, 22:06:14 »

nu mai conteaza am luat 100 inlocuind instructiunea :

Cod:
for (i=1;i<=n;i++)
     v[i]=0;

cu

Cod:
memset(v,0,sizeof(v));

si a intrat de 100. Hashingu il aloc dinamic si folosesc constanta 666013 (am eu o placere ptr numaru asta Very Happy )

Multumesc tuturor ptr ajutor.
Memorat
Tabara
Nu mai tace
*****

Karma: 20
Deconectat Deconectat

Mesaje: 216



Vezi Profilul
« Răspunde #9 : Ianuarie 31, 2007, 22:55:11 »

constanta 666013 (am eu o placere ptr numaru asta Very Happy )

Iti mai spun eu vreo 10 oameni care au pasiune pentru numarul asta  Very Happy

 Applause
Memorat
mocke
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 19



Vezi Profilul WWW
« Răspunde #10 : Februarie 03, 2007, 01:04:55 »

am o nelamurire: de ce merge mai repede scanf("%s", s) decat scanf("%d", &d) ??
pt trecerea de la 80 (in caz ca faci hash iar ultimele 2 teste iau cam ~1.530 ms) la 100 am parsat citirea dar nu am folosit gets() pt ca luam WA pe ult 2 teste (nush de ce??  Think) si am folosit scanf("%s", s) , iar spre uimirea mea a intrat in timp! ceva opinii?   
« Ultima modificare: Februarie 03, 2007, 01:07:51 de către Barca Cristian Mihai » Memorat

oricine greseste...nu oricine invatza
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #11 : Februarie 04, 2007, 13:49:01 »

la problema asta citirea dureaza 1.3-1.4 secunde Surprised. Ptr ca un algoritm de complexitate o(n) ptr n - 1 milion merge cam in 0.1 hai sa zicem 0.2. dar tot mi se pare cam mult 1.3 ptr a citi 1 milion de numere :-/
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #12 : Februarie 04, 2007, 16:58:36 »

cum anume citesti?
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #13 : Februarie 04, 2007, 17:35:11 »

scanf/printf dar oricum limita de timp e de 1.5 secunde si din cate am vazut in monitorul de evaluare nu sunt singurul care s-a chinuit sa incadreze 1 milion de operatii in acest timp.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #14 : Februarie 04, 2007, 19:26:46 »

Incearca sa parsezi citirea, s-ar putea sa mearga mai bine.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #15 : Februarie 04, 2007, 22:44:28 »

am incercat sa citesc cu fgets dar luam WA pe niste teste nu inteleg de ce. Ce intelegi prin parsarea citirii - citirea linie cu linie?? dak asta e atunci diferenta nu cred ca e asa mare ptr ca numerele sunt date cate unul pe linie. deci tre sa citesti 1 milion de stringuri si tot cam pe acolo iesi cred. sper sa nu ma insel
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #16 : Februarie 05, 2007, 12:07:48 »

Se simte diferenta chiar daca citesti linie cu linie folosind fgets.
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #17 : Februarie 05, 2007, 12:24:18 »

Sau citesti totul intr-un sir de caractere si extragi datele din sir. Merge simtitor mai repede pe site-uri ca www.spoj.pl dar nu si pe infoarena. La secv5 am castigat 0.3 s cu parsarea asta.
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #18 : Februarie 05, 2007, 12:48:01 »

0.3 s e foarte mult de fapt. Probleme gen color nu prea se pot face fara parsarea citirii. La asta se poate lua 100 puncte cu putin noroc fara sa parsezi citirea..
Memorat
an_drey_curent
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #19 : Ianuarie 31, 2012, 20:41:01 »

Imi poate da cineva o indicatie pentru 100 la problema aceasta? Iau 70.

Determin numarul de secvente care au cel mult U,respectiv L-1 elemente distincte. Folosesc un hash de pairs in care memorez numarul,respectiv numarul lui de aparitii in secventa actuala. Actualizez de fiecare data cand modific secventa numarul de aparitii. Parsez citirea... ce as mai putea face?
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #20 : Ianuarie 31, 2012, 21:04:54 »

Am facut accesul la sursele de la problema asta liber. Si pe mine m-a frustrat o gramada si am luat 100 abia dupa ce am intrat in echipa si m-am uitat la altii cum optimizeaza. Presupun ca e ceva de invatat aici... Smile
Memorat

Am zis Mr. Green
an_drey_curent
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #21 : Februarie 01, 2012, 09:39:33 »

 Pray  Very Happy
Memorat
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #22 : Septembrie 24, 2012, 11:44:31 »

Am trimis destul de multe surse (http://infoarena.ro/monitor?task=secv5&user=scipianus) cu mai toate optimizarile la care m-am putut gandi (ba cu normalizare cu sortare,ba cu hash,ba cu map) si mereu ia cel mult 80pct cu TLE. Ce mai pot optimiza? Vad ca ultima sursa de 100pct e prin august deci ar trebui ca inca sa se mai poata lua 100pct pe limita actuala,desi n-ar strica sa fie marita putin...
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #23 : Septembrie 24, 2012, 17:56:07 »

Am crescut limita de timp pentru ca sursa mea de 100 nu intra in timp.

Ca sa iau o 100 de puncte eu am folosit un hash de mana mai dubios. Am adaugat de la inceput toate elementele in hash si apoi cresteam/decrementam nr. de aparitii fara sa mai fac operatii de inserare sau stergere.
Memorat

Am zis Mr. Green
claudiumihail
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 33



Vezi Profilul
« Răspunde #24 : Aprilie 28, 2013, 03:31:36 »

Salut,

La problema asta am trimis la surse de mi s-a acrit, cu toate optimziarile la care m-am putut gandi:

- Algoritm O(n) (varianta cu determinat subsecventele de lungime L-1 si U) - bifat
- Citire parsata - bifat
- Hash de mana care e vizibil mult mai bun decat unoprdered_map/hash_map etc - bifat (desi sunt gata sa accept ca aici e posibil sa fie buba)

Recunosc ca deja a devenit extrem de frustranta problema asta. Am vazut ca multa lume s-a tot chinuit sa treaca de 80pct. Am vazut de asemenea ca s-a mentionat ca accesul la surse era la un moment dat liber. Daca nu mai e cazul, e dispus cineva sa-mi dea un hint despre cum se poate face problema asta de 100? Chiar am ajuns intr-un punct mort si as fi extrem de recunoscator pentru putin ajutor.

Claudiu
Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines