Afişează mesaje
Pagini: 1 ... 3 4 [5] 6 7 ... 29
101  infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 024 Cpal : Noiembrie 20, 2014, 20:52:33
"Un palindrom este un număr natural (...)", "Atentie! Un numar natural are cel putin o cifra".
102  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 316 Chiftea : Noiembrie 15, 2014, 12:48:21
sqrt poate avea erori de precizie. Daca calculezi sqrt(4) poate sa iti rezulte 1.999999 care devine 1 cand ii faci cast la int.
103  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 000 A+B : Octombrie 26, 2014, 14:41:53
http://www.infoarena.ro/forum/index.php?topic=10164.0
104  infoarena - concursuri, probleme, evaluator, articole / SPOJ / Răspuns: 2648. Archiver : Octombrie 22, 2014, 18:59:57
Am gasit pe net o solutie cu Divide et Impera + Z-algorithm. Ideea e asa:

Tu cauti toate substringurile X = YZ, unde Y si Z sunt stringuri nevide si Y = Z.

Cauti toate substringurile de aceasta forma din intervalul [st, dr]. Fie m mijlocul intervalului.
Ai 3 cazuri:
1) X incepe in prima jumatate ([st,m]) si se termina in a doua jumatate ([m+1,dr]).
2) X se afla in intregime in prima jumatate
3) X se afla in intregime in a doua jumatate

Pentru cazurile 2) si 3) mergi recursiv si afli raspunsul pentru intervalele respective.

Ramane cazul 1). Ai 3 subcazuri:
1a) Y se termina exact la m
1b) Y se termina inainte de m
1c) Y se termina dupa m

Cu ajutorul algoritmului Z calculam vectorul Z, Z[i] = cel mai lung prefix al lui [m+1,dr] astfel incat acesta sa fie prefix si pentru [i,m].

Stringurile de la 1a) sunt acele stringuri care respecta proprietatea ca incep la i si i + Z[i] - 1 = m.

Pentru 1b) mai trebuie sa calculam vectorul RZ, RZ[i] = cel mai lung sufix al lui [st,m] astfel incat acesta sa fie sufix si pentru [st,i] (practic algoritmul Z pe sirul inversat).

Impartim stringurile Y is Z in doua parti astfel incat Y = Y1Y2, Z = Z1Z2, Y1 = Z1, Y2 = Z2 si Z2 este prefix al lui [m+1,dr].

[ ... Y1 Y2 Z1 ]   [ Z2 ... ]
st               m m+1     dr

Incercam toate pozitiile de inceput i pentru Y2. Y2 se poate termina cel tarziu la min(i + Z[i] - 1, m - 2). Deci avem un interval de posibilitati pentru Y2. Incercam sa determinam un astfel de interval si pentru Z1. Z1 poate incepe cel mult la max(i + 1, m - RZ[i - 1]). Avand aceste doua intervale, putem calcula cate stringuri intra in acest caz (cand Y2 incepe la i).

La 1c) luam intervalele invers si se reduce la 1b).

Deci complexitatea e O(NlogN).

Sursa mea: http://ideone.com/vC4bJT
105  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Răspuns: Template cod sursa Java : Octombrie 22, 2014, 18:09:44
De cand exista Java?  Shocked Am ratat vreun anunt? Daca nu, ar trebui sa anuntati.
106  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Alegere : Octombrie 21, 2014, 09:02:16
Se face cam o materie din 6 pe semestru matematica. Si pentru mine a fost cam plictisitor, dar ce sa faci. Smile
107  infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 9 : Octombrie 20, 2014, 10:19:06
Am completat articolul. Spor la invatat.
108  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 824 Insule : Septembrie 28, 2014, 21:27:20
Citesti N siruri de caractere.
109  infoarena - concursuri, probleme, evaluator, articole / Articole / Răspuns: 12 ponturi pentru programatorii C/C++ : Septembrie 25, 2014, 14:01:56
Nu vad care e problema daca nu acoperi tot int-ul. Si daca folosesti std::numeric_limits<int>::max() risti sa faci overflow in unele cazuri.
110  infoarena - concursuri, probleme, evaluator, articole / Articole / Răspuns: 12 ponturi pentru programatorii C/C++ : Septembrie 25, 2014, 01:07:37
Singurul avantaj e ca merge combinat cu memset(). Dar putem folosi fill(), deci e cam inutila chestia.
111  infoarena - concursuri, probleme, evaluator, articole / Arhiva ACM / Răspuns: 008 Brazi : Septembrie 23, 2014, 11:47:01
Nu e bun modul de construire al codului.

Cod:
2
3
1 2 0
1 3 1
3
1 2 0
2 3 1
112  infoarena - concursuri, probleme, evaluator, articole / Arhiva ACM / Răspuns: 008 Brazi : Septembrie 22, 2014, 00:00:03
Daca ti se dau muchiile in alta ordine tie iti iese alt cod.
113  infoarena - concursuri, probleme, evaluator, articole / Articole / Răspuns: Siruri de sufixe : Septembrie 20, 2014, 18:38:36
x si y sunt indici in sirul sortat al sufixelor.
114  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Citire cu cstdio : Septembrie 16, 2014, 15:45:53
S-a mai raspuns la aceasta intrebare.
Cod:
freopen("d.in", "r", stdin);
freopen("d.out", "w", stdout);
scanf("%d %d", &N, &M);
printf("%d %d", N, M);
Apelurile freopen() face ca intrarea/iesirea standard sa fie din fisier.

Legat de doua intrebare, greseala e ca citesti si caracterul '\n' (sfarsit de linie) si trebuie sa te asiguri ca sari peste el.
De exemplu fscanf(f,"%d\n",&n); la inceput si citesti un caracter in plus la sfarsitul fiecarei linii.
115  infoarena - concursuri, probleme, evaluator, articole / Concursuri virtuale / Răspuns: Infoarena Cup 2014 - inscrieri : Septembrie 14, 2014, 12:51:39
Ai rabdare. Se va creea pagina in zilele urmatoare.
116  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 002 Jocul Flip : Septembrie 06, 2014, 11:56:50
Nu am testat, dar probabil iti da gresit pe un test de genul asta.

2 2
-2 3
3 -2

Raspuns: 10
117  infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 077 Super Mario : August 31, 2014, 21:04:00
7
4 6 5 7 2 3 1

Raspuns: 3
118  infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 8 : August 31, 2014, 20:33:47
Leeerooooooy Jeeenkiiiiiins!  Very Happy Cine e fan Blizzard/Warcraft?
Ar fi util sa vezi scorul potential la probleme ca la codeforces.
119  infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Temple : August 31, 2014, 19:01:42
Din exemplu se intelege ca S se construieste cu max, nu min. ?!
120  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 824 Insule : August 21, 2014, 16:05:21
Faci exact cum ai spus. Bagi totul in coada, setezi distanta pentru acele puncte la 0 si ii dai drumul. Nu e nimic special. Explica ce nu intelegi.
121  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 001 Cel mai lung subsir comun : August 20, 2014, 23:38:53
Sirurile pot fi mai lungi decat 30. Se da totul peste cap fiindca depasesti limitele vectorului.
122  infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 057 Basequery : Iulie 31, 2014, 00:40:45
Nu inteleg de ce solutia oficiala e suficient de rapida. Dupa calculele mele ies cam 40000 * 16 * 40 * 10 operatii. E ceva optimizare la parcurgerea subsecventelor? Multumesc!
123  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: IOI 2014 : Iulie 14, 2014, 21:34:08
Succes, va tinem pumnii!
124  infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 000 Algoritmul lui Euclid : Iunie 22, 2014, 19:10:13
Timpul de executie e prea mare pe ultimul test. Incearca cu integer in loc de longint.
125  infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2014 / Răspuns: Feedback Runda 3 : Iunie 08, 2014, 15:07:42
Marsmusic
...
Acum vom incerca sa determinam pentru fiecare melodie timpul mediu de intersectie pe cele doua posturi utilizand dinamica mentionata anterior (din care vom "scoate" melodia curenta, intrucat aceasta nu poate fi folosita) si sume partiale.
Asa am facut si eu, doar ca nu am stiut cum sa "scot" melodia curenta. Deci, am refacut dinamica pentru fiecare melodie si a devenit N * M^3. Poti detalia?
Pagini: 1 ... 3 4 [5] 6 7 ... 29
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines