随笔分类 - 算法——————倍增
摘要:传送门 我居然把swap写成了switch 如果路径相交,那么一定有LCA(a,b)在路径c,d上,或LCA(c,d)在路径a,b上 如果x在路径a,b上,需要满足条件: dpth[x] >= dpth[LCA(a,b)] LCA(a,x)=x 或 LCA(b,x)=x 就这样,求出LCA后分别判断
阅读全文
摘要:Luogu P3295 mrclr两周前做的题让蒟蒻的我现在做? 第一眼组合计数,如果把数字相同的数位看作一个整体,除了第一位不能为零,剩下的每一位都有$0$~$9$十种。 设不同的位数为$x$,那么答案即为$9*10$x-1 给出两段相同的区间,可以把它们看作单独的一位一位对应,用并查集把它们合并
阅读全文
摘要:Gate 倍增模板,在一个严格小根堆中,给定$x,y$,求$x$的祖先中$≥y$的最高点。 注意清零 #include<cstdio> #include<iostream> #include<cstring> #define MogeKo qwq using namespace std; const
阅读全文
摘要:qwq 这题是知道了正解做法才写的.. 求每两点间最小权值最大的路径,本来我以为要每个点都跑一遍dij(?),后来意识到生成树好像是用来找这个的( ´▽`) 然后我问dtxdalao对不对,他说“我记得这道题好像要用倍增”(我:???剧透会被关进小黑屋的) 其实就是最大生成树是随便建的,然后对于每两
阅读全文
摘要:qwq 预处理出从$x$节点向上跳2i个节点的序号$p[x][i]$及节点深度$dpth[x]$, 寻找$lca$时,从$Max$(可能的最大深度)到0枚举$i$, 首先把较深的一个节点向上跳至深度相同, 然后两个点同步动作,若$p[x][i]≠p[y][i]$则跳。 最终返回他们的父亲$p[x][
阅读全文

浙公网安备 33010602011771号