New pages

From Algopedia
Jump to navigationJump to search
New pages
Hide registered users | Show bots | Show redirects
  • 15:19, 10 June 2025Clasa a 7-a Lecția 27: Algoritmul Union-Find (hist | edit) ‎[13,118 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == {{#ev:youtube|https://youtu.be/QCaiWycJljs|||||start=8250&end=8320&loop=1}} == Problema Disjoint == Se dau <tt>N</tt> mulţimi de numere, iniţial fiecare mulţime <tt>i</tt> conţinând un singur element, mai exact elementul i. Asupra acestor mulţimi se pot face 2 tipuri de operaţii, astfel: * operaţia de tipul 1: se dau două numere naturale <tt>x</tt> si <tt>y</tt>, între 1 şi <tt>N</tt>. Se cere să se reunească m...")
  • 13:27, 10 June 2025Clasa a 7-a Lecția 26: Programare dinamică (3) (hist | edit) ‎[16,165 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video rezolvarea temei == {{#ev:youtube|https://www.youtube.com/watch?v=KdHv9T7Pp98|||||start=80&end=10280&loop=1}} În continuare vom studia exemple de probleme de programare dinamică și probleme suprapuse date la olimpiadă. == Problema Faleza == Problema [https://www.nerdarena.ro/problema/faleza Faleza] a fost dată la ONI 2017 clasa a 6-a. Ea este o problemă de un anumit gen, care se întâlnește din când în când la olimpiadă: probleme...")
  • 11:30, 10 June 2025Clasa a 7-a Lecția 25: Programare dinamică (2) (hist | edit) ‎[23,119 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == {{#ev:youtube|https://youtu.be/z4433kBdq2A|||||start=5580&end=9780&loop=1}} == Problema rucsacului == '''Atenție:''' veți avea la temă ca aplicație problema [https://www.nerdarena.ro/problema/rucsac1 Rucsac1]. Se dă o mulțime formată din <tt>N</tt> obiecte, fiecare având o greutate și o valoare. Într-un rucsac putem încărca o greutate maxim <tt>G</tt>. Ne dorim să încărcăm rucsacul cu obiecte astfel încât să m...")
  • 10:39, 10 June 2025Clasa a 7-a Lecția 29: Discutarea problemelor de la OJI 2024 (hist | edit) ‎[12,138 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == {{#ev:youtube|https://youtu.be/z4433kBdq2A|||||start=1&end=3540&loop=1}} == Problema Parking == Problema [https://www.nerdarena.ro/problema/parking Parking] a fost dată la OJI 2024 Clasa a 7-a. Când vedem o astfel de problemă primul gând trebuie să fie: oricât de simplă ar fi soluția, chiar și cea mai simplă soluție va fi delicat de implementat și nu va fi scurtă. Este genul de problemă care, la concurs, ia timp. Da...")
  • 21:10, 8 June 2025Clasa a 7-a Lecția 24: Programare dinamică (1) (hist | edit) ‎[22,135 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == {{#ev:youtube|https://www.youtube.com/watch?v=a0wFdh8DInQ|||||start=7600&end=11100&loop=1}} == Conceptul de programare dinamică == Introducere Wikipedia definește programarea dinamică drept o metodă pentru rezolvarea unor probleme complexe prin descompunerea lor în subprobleme mai simple. Se poate aplica problemelor care prezintă proprietățile de suprapunere a subproblemelor și de substructură optimală. Atunci când s...")
  • 19:52, 8 June 2025Clasa a 7-a Lecția 28: Sfaturi pentru concursuri / olimpiadă (hist | edit) ‎[9,345 bytes]Mihai (talk | contribs) (Created page with "== Ce să faceți / ce să nu faceți == === Ce să faceți === * '''Odihnă:''' odihniți-vă cu o zi înainte. Relaxați-vă cu activitatea favorită. Mergeți la un film, jucați jocul vostru preferat, etc. Încercați să nu vă gândiți la concurs. * '''Ceas:''' aveți un ceas la voi. Nu ceasul calculatorului sau al smartphone-ului. Fiți conștienți de trecerea timpului, nu vă treziți din visare când mai este un sfert de oră. Pentru aceasta un ceas așezat...")
  • 14:21, 8 June 2025Clasa a 7-a Lecția 23: Evaluare (6) (hist | edit) ‎[436 bytes]Mihai (talk | contribs) (Created page with "Testați-vă cunoștințele și rezolvați următoarele probleme în decurs a trei ore (program C trimis la [https://www.nerdarena.ro/ NerdArena]): * [https://nerdarena.ro/problema/coada Coada] * [https://nerdarena.ro/problema/plop Plop] * [https://nerdarena.ro/problema/nraprime1 NrPrime1] [http://solpedia.francu.com/wiki/index.php?title=Clasa_a_7-a_Lec%C8%9Bia_23:_Evaluare_(6) Accesează rezolvarea problemelor de la lecția 23]")
  • 14:14, 8 June 2025Clasa a 7-a Lecția 22: Generarea elementelor combinatoriale prin algoritmi de tip succesor: submulțimi, permutări, combinări, aranjamente, next permutation (hist | edit) ‎[42,382 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/CVOXXa6i8fs</youtube> == Permutări == Permutările de <source lang="C" enclose="none">N</source> elemente sunt definite ca numărul de moduri de a aranja în șir cele <source lang="C" enclose="none">N</source> elemente. Cred că formula numărului de permutări distincte este destul de ușor de demonstrat, v-o las ca exercițiu: P(N) = N! === Permutările ca funcții de reara...") originally created as "Clasa a 7-a Lecția 22: Generarea elementelor combinatoriale: submulțimi, permutări, combinări, aranjamente, next permutation"
  • 10:16, 30 May 2025Clasa a 7-a Lecția 19: Cozi și algoritmul lui Lee (hist | edit) ‎[20,067 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/nja4_LDg9Xk</youtube> == Tipul coadă == Coada (în engleză queue) este o ''grămadă'' de obiecte ordonate după ordinea '''FIFO''': ''first in, first out''. Aceasta înseamnă că putem adăuga obiecte în coadă, iar atunci când le vom scoate, le vom scoate în aceeași ordine în care le-am adăugat. Ne aducem aminte că, prin contrast, stiva scoate obiectele în ordine i...")
  • 08:15, 30 May 2025Clasa a 7-a Lecția 18: Divide et impera, mergesort, quicksort (hist | edit) ‎[15,981 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/bgMxb050keA</youtube> == Tehnici de programare: divide et impera == Denumită și divide and conquer sau dezbină și stăpânește, este o tehnică cunoscută de mii de ani conducătorilor. Este o tehnică de cucerire sau menținere a puterii asupra unui grup care ar avea putere mai mare dacă s-ar uni. Ținând acel grup dezbinat, fiecare facțiune în parte are putere mică și p...")
  • 07:34, 30 May 2025Clasa a 7-a Lecția 20: Evaluare (5) (hist | edit) ‎[431 bytes]Mihai (talk | contribs) (Created page with "Testați-vă cunoștințele și rezolvați următoarele probleme în decurs a trei ore (program C trimis la [https://www.nerdarena.ro/ NerdArena]): * [https://nerdarena.ro/problema/axyz AXYZ] * [https://nerdarena.ro/problema/patrate Pătrate] * [https://nerdarena.ro/problema/wind Wind] [http://solpedia.francu.com/wiki/index.php?title=Clasa_a_7-a_Lec%C8%9Bia_20:_Evaluare_(5) Accesează rezolvarea problemelor de la lecția 20]")
  • 20:26, 29 May 2025Clasa a 7-a Lecția 17: Evaluare (4) (hist | edit) ‎[452 bytes]Mihai (talk | contribs) (Created page with "Testați-vă cunoștințele și rezolvați următoarele probleme în decurs a trei ore (program C trimis la [https://www.nerdarena.ro/ NerdArena]): * [https://nerdarena.ro/problema/pinguini Pinguini] * [https://nerdarena.ro/problema/factoriale1 Factoriale1] * [https://nerdarena.ro/problema/becuri1 Becuri1] [http://solpedia.francu.com/wiki/index.php?title=Clasa_a_7-a_Lec%C8%9Bia_17:_Evaluare_(4) Accesează rezolvarea problemelor de la lecția 17]")
  • 14:39, 29 May 2025Clasa a 7-a Lecția 16: Tehnica Two Pointers (doi pointeri), tipul de date struct și metoda Greedy (hist | edit) ‎[31,519 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/W59ZLyfMZlc</youtube> == Tehnica Two Pointers (doi pointeri) == În informatica de concurs avem tehnici semi-banale cărora le dăm o denumire pentru a putea să le referim ușor într-o discuție. Este și cazul acestei metode. Deși relativ evidentă, ea are un nume 🙂 Pe scurt, '''Two Pointers''' folosește doi indici într-un vector ce avansează pe rând, similar cu intercla...")
  • 13:40, 29 May 2025Clasa a 7-a Lecția 15: Citire / scriere rapidă (hist | edit) ‎[7,700 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video curs == <youtube height="720" width="1280">https://youtu.be/edb5JQiZxoY</youtube> == Citire/scriere rapidă cu fgetc() / fputc() == Știm că atunci când avem de citit numere la intrare <source lang="C" enclose="none">fscanf()</source> este foarte lentă. Știm că putem citi mai rapid folosind <source lang="C" enclose="none">fgetc()</source> și calculând numerele. Am prezentat, în trecut, o funcție de citire a întregilor bazată pe ...")
  • 19:28, 27 May 2025Clasa a 7-a Lecția 13: Analiză amortizată (2) (hist | edit) ‎[12,679 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video curs == <youtube height="720" width="1280">https://youtu.be/_oXoXO7EEWY</youtube> == Problema Unific == Problema [https://www.nerdarena.ro/problema/unific Unific] a fost dată la OJI 2013 clasa a 7-a. Problema definește o procedură prin care două numere pot fi unificate, dacă au măcar o cifră în comun. Apoi cere să se aplice pe un vector unificări de elemente adiacente până ce nu se mai poate unifica nimic. Întotdeauna se va face pr...")
  • 20:22, 26 May 2025Clasa a 7-a Lecția 12: Analiză amortizată (1) (hist | edit) ‎[20,987 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video curs == <youtube height="720" width="1280">https://youtu.be/PW0OHW6kBeM</youtube> == Despre analiza amortizată == Citat din [http://en.wikipedia.org/wiki/Introduction_to_Algorithms CLRS]: În analiza amortizată facem media timpului necesar pentru a executa o secvență operații, împărțindu-l la toate operațiile executate. Prin analiza amortizată putem să arătăm că costul mediu al unei operații este mic, atunci când împărțim...")
  • 12:28, 26 May 2025Clasa a 7-a Lecția 14: Evaluare (3) (hist | edit) ‎[382 bytes]Mihai (talk | contribs) (Created page with "Testați-vă cunoștințele și rezolvați următoarele probleme în decurs a trei ore (program C trimis la [https://www.nerdarena.ro/ NerdArena]): * [https://nerdarena.ro/problema/tari Țări] * [https://nerdarena.ro/problema/maxp MaxP] [http://solpedia.francu.com/wiki/index.php?title=Clasa_a_7-a_Lec%C8%9Bia_14:_Evaluare_(3) Accesează rezolvarea problemelor de la lecția 14]")
  • 11:35, 26 May 2025Clasa a 7-a Lecția 11: Numere mari, exponențiere rapidă, element majoritar (hist | edit) ‎[16,800 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/YwpoxbhQoBM</youtube> == Operații cu numere mari == === Reprezentarea numerelor mari === Unele probleme necesită lucrul cu numere mai mari decât ne permite tipul <source lang="C" enclose="none">long long</source> (cu aproximație 18 cifre zecimale, mai exact 2<sup>64</sup>). Ce facem în acest caz? Stocăm aceste numere în vectori, câte o cifră în fiecare element al vector...")
  • 13:28, 23 May 2025Clasa a 7-a Lecția 10: Fill recursiv (flood fill) (hist | edit) ‎[16,501 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/EB97GkmjVgQ</youtube> == Despre flood fill == Algoritmul fill ''umple'' toate golurile accesibile de la un punct dat. Golurile pot fi elemente zero într-o matrice, de exemplu, iar vecinii pot fi definiți ca elementele adiacente pe linie și coloană (acesta este cazul cel mai întâlnit). Alteori vecinii pot fi definiți ca având un punct comun cu elementul curent, ceea ce in...")
  • 10:55, 23 May 2025Clasa a 7-a Lecția 9: Evaluare (2) (hist | edit) ‎[389 bytes]Mihai (talk | contribs) (Created page with "Testați-vă cunoștințele și rezolvați următoarele probleme în decurs a trei ore (program C trimis la [https://www.nerdarena.ro/ NerdArena]): * [https://nerdarena.ro/problema/invcuv Invcuv] * [https://nerdarena.ro/problema/partprim Partprim] [http://solpedia.francu.com/wiki/index.php?title=Clasa_a_7-a_Lec%C8%9Bia_9:_Evaluare_(2) Accesează rezolvarea temei 9]")
  • 10:30, 23 May 2025Clasa a 7-a Lecția 8: Recursivitate (2) (hist | edit) ‎[21,134 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/yPXRdAuZv6w</youtube> == Exemple de funcții recursive == Iată câteva probleme care se rezolvă ușor cu funcții recursive: === Palindrom === Verificare palindrom: <syntaxhighlight lang="c" line> #include <stdio.h> int putere( int n ) { // calculam recursiv cea mai mare int p = 1; // putere a lui 10 mai mica decit n if ( n < 10 )...")
  • 08:58, 23 May 2025Clasa a 7-a Lecția 6: Evaluare (1) (hist | edit) ‎[405 bytes]Mihai (talk | contribs) (Created page with "Testați-vă cunoștințele și rezolvați următoarele probleme în decurs a două ore (program C trimis la [https://www.nerdarena.ro/ NerdArena]): * [https://nerdarena.ro/problema/factorizari Factorizări] * [https://nerdarena.ro/problema/strgen StrGen] [http://solpedia.francu.com/wiki/index.php?title=Clasa_a_7-a_Lec%C8%9Bia_6:_Evaluare_(1) Accesează rezolvarea temei 6]")
  • 07:57, 23 May 2025Clasa a 7-a Lecția 7: Recursivitate (1) (hist | edit) ‎[11,069 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/n_LKos0gG0Q</youtube> == Despre recursivitate == O funcție este recursivă dacă se autoapelează. A scrie o funcție recursivă necesită, inițial, o încredere în faptul că funcția funcționează. În fapt, când pornim să scriem o funcție recursivă este bine să considerăm că ea deja funcționează! Reguli de scriere a unei funcții recursive: * Înainte de a scrie co...") originally created as "Clasa a 7-a Lecția 6: Introducere în recursivitate"
  • 12:43, 22 May 2025Clasa a 7-a Lecția 5: Precalculare (hist | edit) ‎[22,864 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/n_LKos0gG0Q</youtube> == Despre precalculare == Precalcularea este un termen general pentru folosirea unor structuri auxiliare de date, uneori fără o legătură directă cu problema de rezolvat, care ne ajută în rezolvarea problemei. Aceste structuri de date sunt calculate la început, înainte de calculul propriu zis, ceea ce duce la denumire: precalculare. De obicei precalc...")
  • 08:34, 22 May 2025Clasa a 7-a Lecția 4: Liste (2) (hist | edit) ‎[13,435 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video curs == <youtube height="720" width="1280">https://youtu.be/WvM90m3wRPo</youtube> == Operații cu liste == Să vedem câteva exemple de manipulare a listelor. În toate aceste exemple vom considera liste de întregi reprezentate astfel: <syntaxhighlight lang="C" line> int key[MAXL]; // valori intregi memorate de lista int next[MAXL]; // următorul element in lista </syntaxhighlight> Lista este definită de prima sa celulă: <syntaxhighlight l...")
  • 21:25, 21 May 2025Clasa a 7-a Lecția 3: Liste (1) (hist | edit) ‎[19,481 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/yMeFuBS5ovA</youtube> ==Conceptului de liste== ===Definiție=== În informatică '''o listă înlănțuită este o structură de date care constă dintr-un grup de noduri care împreună reprezintă o secvență'''. În forma ei cea mai simplă, fiecare nod este format din date și o referință (înlănțuire) către nodul următor în secvență. Lista înlănțuită permite inser...")
  • 10:38, 21 May 2025Clasa a 7-a Lecția 2: Problema selecției și stive (hist | edit) ‎[9,516 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/gy3zK4E8SSo</youtube> == Rezolvarea temei 1 == === Problema Rapper === Problema [https://www.nerdarena.ro/problema/rapper rapper] a fost dată la concursul de admitere la clubul Nerdvana la cursul de performanță clasa a 7a. Este o problemă de bază de prelucrare a unor șiruri de caractere. Voi prezenta o soluție ce nu necesită funcții avansate de citire și prelucrare șirur...")
  • 09:32, 21 May 2025Clasa a 7-a (hist | edit) ‎[1,829 bytes]Mihai (talk | contribs) (Created page with "* Clasa a 7-a Lecția 1: Reguli de programare în limbajul C și complexități algoritmice")
  • 09:30, 21 May 2025Clasa a 7-a Lecția 1: Reguli de programare în limbajul C și complexități algoritmice (hist | edit) ‎[30,909 bytes]Mihai (talk | contribs) (Created page with "== Înregistrare video lecție == <youtube height="720" width="1280">https://youtu.be/YJYXh3XEPUE</youtube> == Reguli de programare în limbajul C == * Variabilele simple '''nu''' se inițializează la declarare. Ele se inițializează cât mai aproape de secțiunea de program care le folosește. Cu alte cuvinte orice variabilă se inițializează cât mai jos posibil. De ce? Pentru citibilitatea codului. Imaginați-vă că la linia 300 vedem o instrucțiune <source...")