摘要:
题意:给定你大小未知的n个数,你允许有不超过一万次的询问,每次询问两个数,第i个数是否比第j个数小?然后后台会返回给你一个结果YES或者NO(即一行输入), 然后经过多次询问后,你需要给出一个正确的原未知序列的升序排列。 析:当时是真没看懂题意是啥意思,然后就放过了,如果看懂了,并不是很难么,这不就 阅读全文
摘要:
题意:给定一棵树,然后有m个询问,最后统计公共祖先个数。 析:LCA,但是这个题输入太麻烦了,调试了好久,才出结果,然后就在Tarjan算法中直接统计就好了,刚开始MLE,后来又RE,没办法又换了一种方法才AC。 代码如下: 阅读全文
摘要:
题意:给定N个节点一棵树,现在要求询问任意两点之间的简单路径的距离,其实也就是最短路径距离。 析:用LCA问题的Tarjan算法,利用并查集的优越性,产生把所有的点都储存下来,然后把所有的询问也储存下来,然后从树根开始搜索这棵树, 在搜索子树的时候,把并查集的父结点不断更新,在搜索时计算答案,d[i 阅读全文
摘要:
转载地址:http://dongxicheng.org/structure/lca-rmq/ LCA算法 对 于该问题,最容易想到的算法是分别从节点u和v回溯到根节点,获取u和v到根节点的路径P1,P2,其中P1和P2可以看成两条单链表,这就转换 成常见的一道面试题:【判断两个单链表是否相交,如果相 阅读全文