Lista de probleme 888

Filtrare

Se consideră un graf cu N noduri numerotate de la 1 la N și M operații de trei tipuri:

  • 1 x y – se adaugă în graf muchia (x, y). Dacă muchia există deja, operația nu se efectuează
  • 2 x y – întrebare: nodurile x și y se află sau nu în aceeași componentă conexă?
  • 3 – care este numărul maxim de noduri dintr-o componentă conexă?

Trebuie să răspundeți la toate întrebările de tip 2 și 3.

Se dă un digraf (graf orientat) cu n noduri numerotate de la 1 la n. Graful componentelor tare conexe se obține astfel: se construiesc componentele tare conexe, apoi fiecare astfel de componentă devine nod în noul graf. Apoi din lista inițială de arce se păstrează în noul graf numai arcele care au extremitățile în componente tare conexe diferite. Să se afișeze listele de adiacență asociate noului digraf.

#3364 Unire

Gigel are un graf cu n noduri și m muchii, care nu este conex. El dorește să afle răspunsul la două întrebări:

1) Care este numărul minim de muchii ce trebuie ađugate astfel încât graful să devină conex?
2) Dacă costul adăugării unei muchii între nodurile a și b este a + b, care este costul total minim al muchiilor care trebuie adăugate astfel încât graful să devină conex?

Se dau n string-uri. Pentru fiecare string s[i] trebuie să determinați câte string-uri mai mari decât s[i] se află la stânga sa, adică în secvența s[1], s[2], …, s[i-1]. (un string a este mai mare decat un string b daca are mai multe caractere, sau daca este mai mare lexicografic)

Șirul lui Fibonacci este definit astfel:

$$ F_n = \begin{cases}
1& \text{dacă } n = 1 \text{ sau } n = 2 ,\\
F_{n-1} + F_{n-2} & \text{dacă } n > 2.
\end{cases} $$

Se dă un număr natural n. Determinați al n-lea termen al șirului, modulo 666013.

#3332 PatratMagic4 C++

Să se scrie o funcție care primește ca parametru un număr natural c și returnează numărul de ordine al pătratului magic cu constanta c, dacă există.

Fiind dat un șir de numere, numim secvenţă a acestuia o parte dintre termenii şirului luaţi de pe poziţii consecutive. Denumim platou al acestui şir o secvenţă formată din valori identice. Lungimea unui platou este egală cu numărul de elemente care îl formează.

Asupra unui şir se poate efectua următoarea operaţiune:

  1. se extrage un platou la alegere;
  2. se inserează platoul extras la pasul anterior într-o poziţie la alegere din şirul rezultat după extragere.

Să se scrie un program care citește un șir de n numere naturale și un număr k și determină:

  1. lungimea maximă a unui platou care poate să apară în şir în urma efectuării operaţiunii de mai sus de maxim k ori
  2. elementul din care este format platoul obținut după cele k operațiuni

Considerăm codificarea binară a caracterelor, în care fiecărui simbol îi revine reprezentarea pe 8 biți a codului său ASCII. De exemplu, caracterului ’A’, având codul ASCII 65, îi va corespunde reprezentarea binară 01000001.

Scrieți un program care citește din fișierul convert_submatrix.in un șir s format din n ≤ 100 caractere și construiește o matrice M cu n linii și 8 coloane, linia i a matricii reprezentând codificarea binară a caracterului de pe poziția i din șir. Se cere determinarea dimensiunii celei mai mari submatrice pătratice a lui M, care conține elemente cu aceeași valoare (fie 0, fie 1). Valoarea determinată se scrie în fișierul convert_submatrix.out.

#3294 Hmmm

Fie λ o permutare de grad N și K un număr natural nenul. Să se afișeze toate soluțiile ecuației \({x}^{K}=λ\) în ordine lexicografică.

Orice șir de caractere poate fi descompus în palindromuri într-unul sau mai multe moduri. Dându-se un șir de caractere format numai din litere mici, să se determine numărul de moduri de a descompune șirul în palindromuri.