摘要: 第一次按常规的方法求,将所有的查询的u,v,和最近公共祖先都保存起来,然后用tarjan+并查集求最近公共祖先。因为询问的次数过多,所以在保存查询的时候总是MLE,后来参考了一下别人的代码,才突然觉悟,可以先将u,v,和其最近公共祖先保存到数组,然后再求结果,为什么不能直接保存其结果了。如果只保存结果的话,保存查询操作就可以节约1/3的内存,所以基本可以过了。代码如下:方法一:#include #include #include #include #include using namespace std;const int maxn = 10100;vector >tree[maxn], 阅读全文
posted @ 2013-07-26 21:31 一生挚爱 阅读(164) 评论(0) 推荐(0) 编辑