求有向图的最长路径
摘要:
题目:有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接,问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。这个题目转化为图来做,设每个字符串看做一个顶点,如果(u,v)满足u的后m个字符和v的前m个字符匹配,则连边,权值设置为1即可。然后针对建好的图,进行拓扑排序,并检查是否有环,如果有环,直接返回false,如果互换,则进行求最长路径。求最长路径,我们可以根据floy来求,算法中直接将最短改为最长即可。下面是一种新的方法求最长路径,用到拓扑排序的结果。该思路的本质是利用动态规划,假设dist[v]表示以v结 阅读全文
posted @ 2012-10-06 12:26 buptLizer 阅读(12277) 评论(0) 推荐(0) 编辑