POLSKI SPOJ

Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

Zadanie w systemie SPOJ (srednie)

807. Minimalne drzewo spinające

Kod zadania: SPIN_PL

Dla podanego grafu G znajdź jego drzewo spinające o minimalnej sumie wag.

Wejście

Pierwsza linia zawiera liczbę całkowitą określającą liczbę przypadków testowych. Kązdy przypadek testowy to jeden graf, który jest opisany w dwóch kolejnych liniach. Pierwsza linia jest postaci n=x,m=y gdzie x i y są liczbami określającymi liczbę wierzchołków i krawędzi grafu. Druga linia opisująca graf zawiera listę krawędzi oddzielonych spacjami. Każda krawędź jest postaci {u,v}w gdzie u,v to wierzchołki należące do krawędzi, natomiast w jest liczbą całkowitą będącą wagą krawędzi. Wierzchołki numerujemy liczbami 0,...,n-1.

Wyjście

Dla każdego przypadku testowego należy w osobnej linii wypisać liczbę będącą sumą wag krawędzi należących do minimalnego drzewa spinającego.

Przykład

Wejście:
2
n=6,m=9
{0,1}1 {0,5}3 {1,2}9 {1,3}7 {1,5}5 {2,3}8 {3,4}5 {3,5}2 {4,5}4
n=7,m=12
{0,1}2 {0,2}1 {0,3}2 {0,4}1 {0,5}2 {0,6}1 {1,2}4 {1,6}4 {2,3}3 {3,4}4 {4,5}6 {5,6}8


Wyjście:
18
9

Uwagi

Szkic algorytmów można znaleźć tutaj

Przykładowe dane testowe


Dodane przez:Darek Dereniowski
Data dodania:2006-04-12
Limit czasu wykonania programu:10s
Limit długości kodu źródłowego50000B
Języki programowania:All except: ERL JS PERL 6

ukryj komentarze
2011-07-31 13:08:44 Puchatek
Dzięki
2011-07-30 20:19:51 Piotr Kąkol
Nie tylko jedno wejście jest dobre, Twoje może również być ok. Ale jeśli jesteś pewien, że Twój algo jest ok, możesz spróbować mojego:
scanf("%d",&t);
while(t--)
{
  getchar();
  scanf("n=%d,m=%d",&n,&m);
  for(i=0;i<m;++i)
  {
    getchar();
    scanf("{%d,%d}%d",&a,&b,&c);
  }getchar();
}


Ostatnio edytowany: 2011-07-30 20:20:53
2011-07-30 18:37:07 Puchatek
Wrrr, wejście, kurde zadanie banał, wejście koszmar, co jest złego w takim wejściu?
scanf("%d",&t);
for(int z=0;z<t;++z){
scanf("%c%c%d%c%c%c%d%c",&q,&q,&n,&q,&q,&q,&m,&q);
for(int k=0;k<m;++k){
scanf("%c%d%c%d%c%d%c",&q,&a,&q,&b,&q,&w,&q);
2011-06-17 11:49:53 Piotr Kąkol
Po prostu trzeba wczytywać dodatkową spację (albo lepiej ogólnie znak getcharem) po każdym z testów.
2011-05-16 00:18:03 Krzysztof Lewko
Mam nadzieję, że autor zadania miał super zabawę wymyślając tak kozacki input
Zabawa z cin.clear() wreszcie dała ac...

Ostatnio edytowany: 2011-05-16 14:15:37
2011-01-23 23:32:26 Paweł Chwała
Format wejścia to spory przerost formy nad treścią ...
2010-08-12 15:13:57 Jakub Stanecki
Warto wspomnieć, że krawędzie są nieskierowane :).
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.