关于最长链
来源:互联网 发布:4g网络覆盖 编辑:程序博客网 时间:2024/05/14 03:43
昨天晚上突然想到一个问题:
对于一个给定的有向图,给定起点,求一条最长链
我一开始觉得这个问题比较简单,但是想了半天也不会做,颓然发现它可能比较难……
如果这个图是个topo图,那么可以DP或者SPFA来做
如果不是呢?也就是说这个图存在环的话呢?
如果每条边可以走多次,那么显然最长链不存在
否则这个问题有两种版本
一种是不允许经过重复的边,可以经过重复的点//2011.12.18修改,这样就不叫最长链了,叫最长迹……
第二种是不允许经过重复的点
今天问了pty和zzx,pty提出可以用类似费用流中的消圈算法解决
在这个问题中,环相当于最短路中的负环,消圈算法就是解决费用流中存在负环的情况,使得即使存在负环,仍然能求出最小费用路,那么套用到这里也是一样的
可是消圈算法一般的OIer根本不会去写,因为效率没有一般的SPFA最小费用流或者zkw费用流高
而且出现负环的情况一般不多见,可这个问题确确实实是有可能考到的,因此实际上并没能真正解决
而且消圈算法只能解决不允许经过重复点的情况(网络流中经过了一个环等于没流),第一种情况没能解决
中午将这个问题推广到不给定起点,求任意一条最长链
发现可以用floyd,因为floyd保证不会出现环,这样之前提到的给定起点的情况二在不使用消圈算法的情况下也能得到解决,虽然时间复杂度有点高
至此情况一始终没能解决……
- 关于最长链
- 关于(最长链)的模板题
- 关于求最长路
- 关于最长递增子序列
- 关于最长递增子序列与最长公共子序列
- 关于最长公共子序列的问题
- 关于最长等差子列的问题
- C++ 关于最长公共子串问题
- C++ 关于最长下降子序列问题
- 一些思索 关于有环图的最长路
- problem14 最长链
- 最长词链
- 【最长链】wikioi1814
- Codevs P1814 最长链
- P3250 最长链
- 【u219】最长链
- Codevs 1814 最长链
- 最长链(递归)
- inner_productd的用法
- Git详解之四 服务器上的Git
- 三款改进 Chrome 浏览历史管理的扩展程序
- 对象生死劫 - 构造函数和析构函数的异常
- partial_sum的用法
- 关于最长链
- ubuntu下安装expresscard转USB驱动【失败】
- Eclipse 常用快捷键
- adjacent_difference的用法
- 运算符优先级 详细列表
- JNDI的基本应用
- Selenium 命令列表
- iOS屏幕变换的处理
- 关于主线程更新UI,thread、progress、dialog等的用法、