This shows you the differences between two versions of the page.
|
pa:laboratoare:laborator-10 [2025/11/04 15:39] cpatrascu1910 [Laborator 10: Arbori minimi de acoperire] |
pa:laboratoare:laborator-10 [2026/05/14 01:18] (current) radu.nichita [Extra] |
||
|---|---|---|---|
| Line 344: | Line 344: | ||
| </note> | </note> | ||
| - | ==== Task-1: Kruskal ==== | + | ====== Pool probleme (pentru prezentări) ====== |
| - | Se dă un graf **neorientat** și **conex** cu **n** noduri și **m** muchii (cu costuri oarecare pe muchii). | + | ===== 1) Min Cost to Connect All Points ===== |
| - | Folosiți algoritmul lui **Kruskal** pentru a găsi un **MST**. | + | Enunț: Se dau ''N'' puncte în plan. Costul conectării a două puncte este distanța Manhattan dintre acestea. Se cere costul minim pentru a conecta toate punctele. |
| - | Task-uri: | + | Date de intrare: Un vector de puncte ''(x, y)''. |
| - | - Găsiți **costul** MST. | + | Date de ieșire: Costul minim necesar pentru conectarea tuturor punctelor. |
| - | - Găsiți care sunt **muchiile** din MST. **ATENȚIE!** Se poate găsi orice **MST** (în caz că există mai mulți). Ordinea muchiilor din vectorul rezultat **NU** este relevantă. | + | |
| + | Problema se poate testa la: | ||
| + | [[https://leetcode.com/problems/min-cost-to-connect-all-points/description/ | ||
| + | | LeetCode - Min Cost to Connect All Points]] | ||
| - | <note warning> | + | ===== 2) Road Reparation ===== |
| - | Restricții și precizări: | + | Enunț: Se dau ''N'' orașe și ''M'' drumuri bidirecționale cu costuri de reparație. Se cere costul minim necesar pentru a face posibilă deplasarea între oricare două orașe. Dacă nu este posibil, se afișează ''IMPOSSIBLE''. |
| - | * $ n <= 2 * 10^5 $ | + | Date de intrare: ''N'', ''M'', urmate de ''M'' muchii ponderate. |
| - | * $ m <= 4 * 10^5 $ | + | |
| - | * $ -10^3 <= c <= 10^3$, unde c este costul unei muchii | + | |
| - | * timp de execuție | + | |
| - | * C++: ''%%1s%%'' | + | |
| - | * Java: ''%%7s%%'' | + | |
| - | * Vă recomandăm să parcurgeți [[https://infoarena.ro/problema/disjoint | DisjointSet]]. **ATENȚIE!** Scheletul de laborator oferă o astfel de implementare. | + | |
| + | Date de ieșire: Costul minim al unui arbore de acoperire sau ''IMPOSSIBLE''. | ||
| - | </note> | + | Problema se poate testa la: |
| + | [[https://cses.fi/problemset/task/1675 | ||
| + | | CSES - Road Reparation]] | ||
| + | ===== 3) Critical and Pseudo-Critical Edges in Minimum Spanning Tree ===== | ||
| - | === Task-2: Costul minim să conectăm n puncte 2D în plan === | + | Enunț: Se dă un graf ponderat conex. Pentru fiecare muchie se determină dacă este: |
| - | Rezolvați problema [[ https://leetcode.com/problems/min-cost-to-connect-all-points/description/ | Min Cost to Connect All Points ]] pe LeetCode. | + | |
| + | critică (apare în orice MST) | ||
| + | pseudo-critică (poate apărea într-un MST) | ||
| + | Date de intrare: număr de noduri și lista muchiilor ponderate. | ||
| - | ==== BONUS ==== | + | Date de ieșire: două liste de muchii: critice și pseudo-critice. |
| - | La acest laborator, asistentul va alege 1-2 probleme din secțiunea extra. | + | Problema se poate testa la: |
| + | [[https://leetcode.com/problems/find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree/ | ||
| + | | LeetCode - Critical and Pseudo-Critical Edges]] | ||
| - | ==== Extra ==== | + | ===== Extra ===== |
| * [[https://infoarena.ro/problema/desen|infoarena/desen]] | * [[https://infoarena.ro/problema/desen|infoarena/desen]] | ||