cf 919D substring
题意:
给一个含n个结点和m条有向边的图。其中每一个结点都有一个小写字母与其对应。定义在一条路径上出现各个字母的最大次数为这条路径的value,求所有路径中最大的value。如果value是无限大,则输出-1。
思路:
dp+topo排序.
dp[v][ch]为:到v点,字符ch的频率.dp[v][ch]=max(dp[v][ch],dp[u][ch]+ch==s[v])hasEdge(u,v)
我写的记忆化搜索有点问题,这里有一个递推形式给出的.
https://paste.ubuntu.com/26503386/
所以在DAG上dp和判环是可以同时进行的.