Tehnica Two-Pointers în C++

Tehnica Two-Pointers în C++

Two-Pointers este o tehnică folosită adesea în concursurile de informatică, dar mai cu seamă în problemele de la interviurile de angajare. Ea nu este un algoritm concret – nici măcar un șablon –, ci mai degrabă o filosofie. Aceasta ne spune că putem optimiza…

Best of FIICode 2021

Best of FIICode 2021

Principalul proiect în care m-am implicat în primul an de facultate (2020-2021) a fost FIICode – un concurs de algoritmică, în stil ICPC, format din patru runde, organizat de studenții Facultății de Informatică din Iași. Prin studenții mă refer la vreo zece persoane…

InfoGenius v2.0 -- Un nou început!

InfoGenius v2.0 – Un nou început!

După trei luni intense de web developing, sunt onorat să vă prezint versiunea 2.0 a site-ului InfoGenius, blogul despre programare competitivă #1 din România! Aștept momentul ăsta de mai bine de patru ani, când după ce am terminat de scris primele articole de aici…

Doi algoritmi pentru aproximarea numărului $\pi$!

Doi algoritmi pentru aproximarea numărului π\pi

Pi este un număr care nu are nevoie de nicio introducere. El este definit drept raportul dintre circumferința și diametrul unui cerc, motiv pentru care această constantă apare adesea în formule și ecuații matematice, dar și fizice. De fapt, în fizică, π\pi apare…

Trie în C++. Problema Xor Max de pe InfoArena

Trie în C++. Problema Xor Max de pe InfoArena

În acest articol voi prezenta structura de date numită trie, precum și câteva aplicații interesante ale acesteia. Tria este o structură de date arborescentă, ușor de implementat, folosită pentru a stoca un set de cuvinte într-o manieră compactă. Din acest motiv…

Suma și numărul divizorilor. Indicatorul lui Euler

Suma și numărul divizorilor. Indicatorul lui Euler

În acest articol voi prezenta câteva aplicații mai interesante la descompunerea unui număr întreg în factori primi: numărul divizorilor, suma divizorilor și indicatorul lui Euler. Ne vom axa pe demonstrarea formulelor pentru calculul acestor funcții, și implicit…

Funcții (Subprograme) în C++

Funcții (Subprograme) în C++

Funcțiile sunt un concept indispensabil în contextul programării. Ele sunt prezente în orice limbaj de programare și ne ajută să scriem cod modular, lizibil și ușor de întreținut. Rolul lor principal este de a ne scăpa de secvențele de cod repetitive, permițându-ne…

Descompunerea în factori primi. Probleme de divizibilitate în C++

Descompunerea în factori primi. Probleme de divizibilitate în C++

În articolul precedent am prezentat Algoritmul lui Euclid și am rezolvat în C++ câteva probleme legate de CMMDC și CMMMC. Astăzi vom discuta despre descompunerea unui număr în factori primi și vom rezolva niște probleme clasice de divizibilitate, majoritatea legate…

Algoritmul lui Euclid în C++. CMMDC și CMMMC

Algoritmul lui Euclid în C++. CMMDC și CMMMC

În acest articol voi prezenta conceptele de CMMDC (cel mai mare divizor comun) și CMMMC (cel mai mic multiplu comun), precum și Algoritmul lui Euclid, atât prin scăderi repetate, cât și prin împărțiri repetate. La final, vom discuta despre câteva aplicații la CMMDC…

Sortarea prin inserție (Insertion Sort) în C++

Sortarea prin inserție (Insertion Sort) în C++

Sortarea prin inserție (Insertion Sort) este o metodă de sortare a vectorilor în complexitate O(n2)O(n^2) oarecum asemănătoare cu sortarea prin selecție. Vom considera că dorim să sortăm crescător vectorul vv de lungime nn indexat de la 11 Sortarea prin inserție presupune…