Module: Dynamische Programmierung in Graphen


Problem

6 /7


Problem

Dan zählt von n Tops und m orientierten Rippen. Jeder Gipfel hat einen sehr starken lateinischen Buchstaben.
Bestimmen Sie den Abstand als die größte Anzahl von Zeiten, die ein Buchstabe auf diesem Pfad war. Wenn beispielsweise die Buchstaben auf dem Weg die Zeile &quot bilden; abaca " , der Abstand ist gleich 3.
Deine Aufgabe ist es, einen Weg mit dem Größten zu finden.

Eingabe:
Die erste Zeile enthält zwei ganze Zahlen n, m (1 ≤ n, m ≤ 2,00000), die angeben, dass n Spitzen und m orientierte Rippen.
Die zweite Zeile enthält eine Linie s, die nur aus einem starren lateinischen Charakter besteht. Symbolnummer i ist der Buchstabe in der oberen Zahl i.
Dann folgen Sie m Linie. Jede dieser Zeilen enthält zwei ganze Zahlen x, y (1 ≤ x, y ≤ n), die die Zielrippe von x bis y beschreiben. Achtung, x kann y sein, und es kann ein paar Rippen zwischen x und y geben.
Außerdem kann die Anzahl nicht verwandt sein.

Ausgangsdaten:
Nehmen Sie eine Nummer, das Maximum der Route. Wenn es irgendeinen Weg mit einem großen Wert gibt, nehmen Sie -1.

Beispiele:
EingangsdatenAusgangsdaten
ANHANG
Abaca
Artikel 2
1 3
Artikel 4
5.
3
6
Xzyabin
Artikel 2
Artikel 1
Artikel 3
ANHANG
4 3
ANHANG
-1
10 14
xzyzyzyzyzyzyzyzqx
Artikel 2
Artikel 4
3 5
5.
Artikel 2
6 8
6 5
Artikel 10
3 9
10 9
4 6
1 10
Artikel 8
3 7
ANHANG