P1852 [国家集训队]跳跳棋 lca 详细解析见题解 对于每组跳棋,我们可以用一个三元组(x,y,z)表示 我们发现,这个三元组的转移具有唯一性,收束性 也就是说,把每个三元组当成点,以转移关系为边,那么可以得到一棵树 显然最短步数==lca 然后我们就可以愉快地跑lca了 但是还要加优化,就是 ...
分类:
其他好文 时间:
2018-09-26 13:55:05
阅读次数:
125
LCA(最近公共祖先).....可惜我只会用tarjan去做 真心感觉tarjan算法要比倍增算法要好理解的多,可能是我脑子笨吧略略略 最近公共祖先概念:在一棵无环的树上寻找两个点在这棵树上深度最大的公共的祖先节点,也就是离这两个点最近的祖先节点。 最近公共祖先的应用:求解两个有且仅有一条确定的最短 ...
分类:
编程语言 时间:
2018-09-25 23:02:47
阅读次数:
206
嘟嘟嘟 看到这题目如果想费用流的话就gg了,就像LCA这道题一样,不要被题目迷惑…… 我们考虑Bob,他想让总费用最大,那么他的所有费用一定都加到流量最大的那一条边上。而Alice想让总费用最小,那么就是让流量最大的那一条边最小,自然就想到二分边的容量啦! 不过这道题特殊的地方是要实数二分。其实终止 ...
分类:
其他好文 时间:
2018-09-25 18:29:41
阅读次数:
172
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According to the definition of LCA on Wikipedia: “The lowes ...
分类:
其他好文 时间:
2018-09-25 11:33:10
阅读次数:
173
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。 接下来M行 ...
分类:
其他好文 时间:
2018-09-25 11:32:44
阅读次数:
174
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 ...
分类:
其他好文 时间:
2018-09-25 01:22:41
阅读次数:
192
1.C++ 多态 2. * c++ map 时间复杂度,如何实现 * map是红黑树实现的,查询复杂度为O(logn) * unordered_map是哈希表实现的,查询复杂度是O(1) * vector * 如何实现 * 如果插入n个数时间复杂度 * 4G内存能存多少vector 3. 虚函数的实 ...
分类:
编程语言 时间:
2018-09-24 23:15:50
阅读次数:
306
传送门:Problem 2370 https://www.cnblogs.com/violet-acmer/p/9686774.html AC代码: Tarjan+LCA: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 # ...
分类:
其他好文 时间:
2018-09-24 11:36:26
阅读次数:
174
题目链接:The Shortest Statement 今天又在群里看到一个同学问$n$个$n$条边,怎么查询两点直接最短路。看来这种题还挺常见的。 为什么最终答案要从42个点的最短路(到$x,y$)之和,还有$x,y$到$LCA(x,y)$的距离里面取呢? 就是如果走非树边,那么一定要走42个点中 ...
分类:
其他好文 时间:
2018-09-23 22:38:24
阅读次数:
273
传送门 解题思路 树上带修莫队,搞了两天。。终于开O2+卡常大法贴边过了。。。bzoj上跑了183s。。其实就是把树上莫队和带修莫队结合到一起,首先求出括号序,就是进一次出一次那种的,然后如果求两个点且两个点的LCA是这两个点的一个,那么树上的路径其实就是in[x]到in[y]。如果不是的话就是ou ...
分类:
其他好文 时间:
2018-09-22 23:17:56
阅读次数:
186