Nu aveti permisiuni pentru a descarca fisierul grader_test5.in
Diferente pentru problema/trilant intre reviziile #6 si #26
Diferente intre titluri:
Trilanţ
Trilant
Diferente intre continut:
== include(page="template/taskheader" task_id="trilant") ==
Într-un graf neorientat $G = (V,E)$, un lanţ reprezintă o succesiune de noduri $S={x{~1~}, x{~2~}, ..., x{~k~}}$, astfel încât există muchie între oricare două noduri consecutive. Costul unui lanţ este suma costurilor muchiilor alese pentru a uni x{~1~} cu x{~2~}, x{~2~} cu x{~3~} ... x{~k-1~} cu x{~k~}. Vom nota un lanţ $(x{~1~},x{~2~}...x{~k~})$ prin primul si ultimul său nod, adică astfel: $(x1, xk)$. Definim un trilanţ într-un graf neorientat $G = (V,E)$ ca fiind reuniunea a trei lanţuri $(A,X), (B,X), (C,X); A, B, C, X ⊆ V$, $X$ fiind singurul nod comun celor trei. Costul unui trilanţ este suma costurilor celor trei lanţuri care îl formează.
Într-un graf neorientat $G=(V,E)$ cu costuri pe muchii, definim un lanţ ca fiind o succesiune de noduri $S={x{~1~},x{~2~}...x{~k~}}$, cu condiţia să existe muchie între oricare două noduri consecutive, si toate nodurile să fie diferite. Costul unui lanţ este reprezentat de suma costurilor muchiilor alese pentru a uni $x{~1~}$ cu $x{~2~}, x{~2~} cu x{~3~} ... x{~k-1~}$ cu $x{~k~}$. Vom nota un lanţ $(x{~1~},x{~2~}...x{~k~})$ prin primul si ultimul său nod, adică : $(x{~1~},x{~k~})$. Definim un trilanţ ca fiind reuniunea a trei lanţuri $(A,X),(B,X),(C,X); A,B,C,X ⊆ V$, $X$ fiind singurul nod comun celor trei. Costul unui trilanţ este egal cu suma costurilor celor trei lanţuri care îl formează. Vom nota un trilanţ prin $(A,B,C)$.
h2. Cerinţa
Dându-se un graf neorientat $G=(V,E)$ şi trei noduri $A,B,C ⊆ V$, determinaţi costul minim alunuitrilanţcuvârfurilein$A,B,C$, precum şi acest trilanţ.
Dându-se un graf neorientat $G=(V,E)$ şi trei noduri $A,B,C ⊆ V$, determinaţi costul minim al trilanţului $(A,B,C)$.
h2. Date de intrare
Pe prima linie a fişierului $trilant.in$ se află două numere naturale $N, M$ separate printr-un spaţiu, reprezentând numărul de noduri, respectiv numărul de muchii din graf. Pe a doua linie a fişierului de intrare se vor afla numerele naturale $A, B, C$ cu semnificaţia din enunţ. Următoarele $M$ linii vor conţine câte trei numere $P, Q, X$ descriind faptul ca există muchie de la nodul $P$ la nodul $Q$ cu costul $X$.
Pe prima linie a fişierului $trilant.in$ se află două numere $N,M$ separate printr-un spaţiu, reprezentând numărul de noduri, respectiv numărul de muchii din graf. Pe a doua linie a fişierului de intrare se vor afla numerele $A,B,C$ cu semnificaţia din enunţ. Următoarele $M$ linii vor conţine câte trei numere naturale $P,Q,T$ descriind faptul ca există muchie de la nodul $P$ la nodul $Q$ cu costul $T$.
h2. Date de ieşire
Fişierul $trilant.out$ va conţine pe prima linie costul minim găsit. Fiecare din următoarele trei linii va avea urmatorul format: $K$, urmat de $K$ numere $x{~1~},x{~2~}...x{~k~}$, reprezentand unul din cele trei lanţuri ce formezăuntrilanţ. Cele trei lanţuripotfi afişate oricum. În caz căexistă mai multetrilanţuride cost minimseva afişa oricaredintre ele.
Fişierul $trilant.out$ va conţine pe prima linie costul minim găsit. Fiecare din următoarele trei linii va avea urmatorul format: $K$, urmat de $K$ numere $x{~1~},x{~2~}...x{~k~}$, reprezentand unul din cele trei lanţuri ce formeză trilanţul cerut. Cele trei lanţuri vor fi afisate cu nodurile in ordine de la $X$ la $A$, de la $X$ la $B$ si de la $X$ la $C$. În cazul în care există mai multe soluţii, se poate afişa oricare.
h2. Restricţii
* $1 ≤ A, B ≤ N ≤ 100 000$ * $1 ≤ M ≤ 100 000$ * $1 ≤ C ≤ 50 000$ * Pentru $30%$ din teste $N ≤ 1 000$ * Gradul maxim al unui nod din graf este $10$
* $1 ≤ A, B, C ≤ N ≤ 100 000$ * $1 ≤ M ≤ 250 000$ * $1 ≤ costul unei muchii ≤ 4 000 000$ * Pentru $50%$ din teste $N ≤ 1 000$
* Lanţurile care formează un trilanţ pot avea lungimi diferite
* Oricare trei lanţuri $(A,X),(B,X),(C,X)$ care formează un trilanţ vor fi disjuncte două cate două, mai puţin nodul $X$ (singurul nod comun pe care îl vor avea va fi $X$) *Oricare trei lanţuri $(A,X), (B,X), (C,X)$ care formeazăuntrilanţvoravea lungime$≥ 2 (A ≠ X, B ≠ X, C ≠ X)$
* Oricare trei lanţuri $(A,X),(B,X),(C,X)$ care formează un trilanţ vor fi disjuncte două cate două, mai puţin nodul $X$ (singurul nod comun pe care îl vor avea va fi $X$) * Intotdeauna va exista solutie
h2. Exemplu table(example). |_. trilant.in |_. trilant.out | | 4 3
1 2 3
1 4 1 2 4 1 3 4 1 | 3
214 224 234
2 4 1 2 4 2 2 4 3
| == include(page="template/taskfooter" task_id="trilant") ==
Nu exista diferente intre securitate.
Diferente intre topic forum:
4268