Afişează mesaje
|
Pagini: 1 [2]
|
27
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 373 Paznici
|
: Decembrie 23, 2010, 11:03:14
|
Salut! Eu construiesc un graf bipartit si cu nodurile din stanga-etichetele liniilor si coloanelor, iar in drepta- elementele matricei, si pun legatura de la fiecare coloana la elementele de pe ea si de la fiecare linie la elementele de pe ea. Apoi aplic un algoritm cu complexitatea O(sqrt(V)*E) pentru ca *** este acelasi lucru cu *** si nu obtin ceea ce trebuie. Banuiesc ca nu creez graful bine. Imi spune cineva cum sa-l contruiesc corect? [Edit] Eu am pus 1-A 2-B .... 26-Z 27-a 28-b ... 52-z Si cand caut solutia pur si simplu ciclez printre noduri si verifica daca l-am imperecheat cu vreun nod din dreapta si dacada il imperechez . Mie pe exemplu imi da
|
|
|
31
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 215 Numar
|
: Septembrie 28, 2010, 21:52:27
|
1. Nu trebuie sa repeti de 2 ori acelasi mesaj 2. Ai citit subiectele topicului asta ? Daca faci cumva un for i = 1 , sqrt ( n ) , fa-l pana cand i * (i - 1) / 2 > N. 3. Poate trebuie sa folosesti long long ( desi eu am folosit int si am luat 100 ) 4. Vezi poate uiti 2 elemente care trebuie introduse la sfarsit : -N + 1 si N * 2. 5. Sa sortezi corect vectorul 2. Nu fac un asemenea for. 3. Folosesc si long long si double si invers(int + float). 4 Le-am introdus. 5 Nu stiu la ce sortare te referi ca eu le fac in ordine bazandu-ma pe faptul ca inputul X=s*(n+1)+n*(n+1)/2 cu s si n+1 numerele care trebuie afisate pentru o solutie anume. Practic incep de la n=1 si calculez s-ul pana cand s>=0 si daca s este intreg am gasit o solutie, o afisez si introduc intr-un vector<int>. Apoi cat timp vectorul nu este gol iau ultimul element si in prelucrez(cred ca cei care au facut problema de 100 si nu numai stiu la ce ma refer) si afisez solutia cu s negativ si apoi elimin elementul din vector<int>. In final afisez ceea ce ai zis tu.
|
|
|
33
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 031 Componente biconexe
|
: Septembrie 13, 2010, 18:28:05
|
Salut! Am cateva intrebari in legatura cu problema si cu sursa oficiala.
- in cartile mele de acasa( Pregatire pentru grupele de performanta, Volumul III al doamnei Cerchez si Introducere in Algoritmi de Udi Manber) cat si in articolul lui Mugurel Ionut Andreica am vazut ca se introducea o muchie in stiva indiferent daca era muchie de intoarcere sau nu, pe cand in sursa lui Marius Stroe se introduce numai cand nu este muchie de intoarcere..
Din ce motiv? Sau ce altceva mai este diferit la sursa lui Marius astfel incat algoritmul functioneaza?
- cum modific algoritmul lui Marius ca sa aflu muchiile? Initial credeam ca din cauza ca nu se cer muchiile, Marius a renuntat la introducerea muchiei in stiva. Insa dupa ce i-am modificat putin sursa am observat ca nu aceasta este cauza.
|
|
|
34
|
Comunitate - feedback, proiecte si distractie / Blog / Răspuns: Problema saptamanii - Interclasare
|
: August 08, 2010, 13:37:55
|
Dar o interclasare in O(n+m) ca la Merge sort nu merge ? Si o putea face si stabila daca este nevoie. Daca tinem un vector cu primele n si unul cu ultimele m.Si doi indici initial 1. Cand avem valoare mai mica in primul vector, punem valoare in vectorul solutie si ii marim indicele. Cand avem valoare mai mare in primul vector, punem valoarea din vectorul al doilea in solutie si ii marim indicele. Iar cand avem valori egale prioritate are valoarea din primul vector. Si facem asta cat timp nu am ajuns la sfarsitul unuia din vectori, dupa care punem elementele ramase in celalalat vector in solutie. LE:am vazut ca trebuie memorie suplimentara O(1)
|
|
|
|