pomysł na rozwiązanie zadania

0

zadanie jest ze spója http://pl.spoj.pl/problems/MWP2_3C/

Nie chce rozwiązań, ale wskazówki jak można to zrobić szybko lub o czym powinienem pomyśleć...

Zliczenie dec z tablicy ascii każdego wyrazu a potem sprawdzenie czy dane liczby się powtarzają niestety jest to za duży czas wykonywania. Więc zastawiam się czy jedynym wyjściem na rozwiązanie tego zadanie jest wykonanie tego łopatologicznie.

Próbowałem także sortowania quick sort, potem zapis do struktury pokolei każdego wyrazu.
Na koniec sprawdzenie :

 for(x =0;x < len; x++)
        {
            for(y=x+1, ile =0;y < len;y++)
            {
                if(tab[x].len != tab[y].len)  // czy mają taką samą długość wyrazy
                    continue;

                if(strcmp(tab[x].wyr, tab[y].wyr) == 0) // sprawdzenie czy są takie same
                    ile++;
            }

            if(wynik < ile)
                wynik = ile;
        } 

Algorytm oczywiście z mojego punkty widzenia dłuższy, czyli przekroczenie czasu.

0

ja napisałem przed chwilą te zadanie chyba najprościej jak się dało i dostałem "zaakceptowano" z czasem 0.89, więc wydaje mi się, że nawet najgorszy algorytm tutaj przejdzie.

Skorzystaj sobie z STL-a. U mnie wystarczyło: string,sort,map

0

chyba ciężko będzie użyć stl-a w C ale dzięki rzucić okiem można zawsze na tego stl-a

0

a czemu musi być koniecznie C, przecież na spoju w tym zadaniu dopuszczalny jest C++

0

rozumiem i z pewnością zrobię je w C++... Ale zadanie chciałbym rozwiązać w języku C, taki własny wymóg.

0

to jak już chcesz sobie utrudniać to może lepiej napisz w assemblerze albo brainfucku

1 użytkowników online, w tym zalogowanych: 0, gości: 1