ASD Ćwiczenia 14: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rytter (dyskusja | edycje)
Nie podano opisu zmian
Rytter (dyskusja | edycje)
Linia 88: Linia 88:
odpowiedni i mod 3 =1, oraz i mod 3 =2.  
odpowiedni i mod 3 =1, oraz i mod 3 =2.  
</div>
</div>
</div>
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
Rozwiązanie
<div class="mw-collapsible-content" style="display:none">
Konstruujemy drzewo sufiksowe dla tekstu x#y$. nwpodsłowo(x,y) odpowiada węzłowi w drzewie, który
reprezentuje najdłuższe podsłowo, oraz z którego prowadzą ścieżki do liści reprezentujących numer sufiksu zaczynającego
się w x, i numer sufiksu zaczynającego się w y. Drzewo trzeba odpowiednio ''przeprocessować'' bottom-up, żeby
można było potem łatwo wyliczyć odpowiedni węzeł. Podobnie rozwiazujemy dla wiely słów x,y ,.. .
</div>
</div>
</div>

Wersja z 09:29, 12 wrz 2006

Zadanie 1

Dane sa teksty x, y, oblicz najdłuższy tekst z (który oznaczamy LCS(x,y) od ang. Longest Common Subword)

który jest jednocześnie podsłowem x, y.

Rozwiązanie


Zadanie 2

Niech lcp będzie tablicą najdłuższych wspólnych prefiksów dla słowa x oraz niech SUMA(lcp) będzie sumą elementów tablicy lcp. Uzasadnij dlaczego liczba wszystkich niepustych podsłów x wynosi


(n+12)SUMA(lcp)

Rozwiązanie


Zadanie 3

Policz wzór na |Subwords(Fn)|

Rozwiązanie


Zadanie 4

Niech lcp[k] = lcp[rank[k]1]. Udowodnij, że lcp[k]lcp[k1]1

Rozwiązanie

Zadanie 5

Opisz liniowy  algorytm liczący tablicę ROT, zakładając, że mamy liniowy algorytm liczenia tablicy sufiksowej.

Rozwiązanie

Zadanie 6

Pokaż, że jeśli mamy tablicę sufiksową dla słowa compress(x) to można łatwo policzyć SUF[M] w czasie liniowym

Rozwiązanie