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和判环是可以同时进行的.

原文地址:https://www.cnblogs.com/sun-yinkai/p/8403630.html