題意:ubuntu
給一個含n個結點和m條有向邊的圖。其中每個結點都有一個小寫字母與其對應。定義在一條路徑上出現各個字母的最大次數爲這條路徑的value,求全部路徑中最大的value。若是value是無限大,則輸出-1。 排序
思路:ast
dp+topo排序.搜索
dp[v][ch]爲:到v點,字符ch的頻率.dp[v][ch]=max(dp[v][ch],dp[u][ch]+ch==s[v])hasEdge(u,v)top
我寫的記憶化搜索有點問題,這裏有一個遞推形式給出的.co
https://paste.ubuntu.com/26503386/字符
因此在DAG上dp和判環是能夠同時進行的.ps