手动把kosaraju算法实现了,费了好大一番功夫,因为输入数据有60多M啊,简直大成一坨屎了。。。
得到的结论就是,list真的很慢。
看起来应该是同样的算法,用list的话,跑起来没见到停的,不知道会跑多久,我看有人说用python+list跑了8小时都没结束。。。
换成dictionary速度飞快,15秒就解决了,其实读文件都有10秒左右的样子了,算法本身也就几秒,O(m+n)的算法威力还是很强的。
另外就是copy了几行神秘代码拓展了python的递归限制,虽然不知道是什么原理,但是看起来很厉害的样子。。。要是没有这个估计这个PS做没法做。说来也是奇怪,python既然一早就支持函数式了,为什么对递归的优化却这么差呢,优化个尾递归啥的会有很大副作用吗,不明白。