随笔分类 - LCA
摘要:分析 一个连通块内的肯定不影响 于是我们先缩点 之后对于每个路径 向上向下分别开一个差分数组 如果两个数组同时有值则不合法 代码 #include<bits/stdc++.h> using namespace std; int n,m,q,bl[200100],s[200100],t[200100]
阅读全文
摘要:分析 我们知道答案一定再最小生成树上 于是我们按边权从小到大建立kruskal重构树 然后每次查询lca的值即可 由于询问较多采用st表维护lca 代码
阅读全文
摘要:分析 先建出最小生成树 之后每次倍增找环即可 代码
阅读全文
摘要:分析 我们发现k非常的小 于是我们对于每一个点暴力维护它到根的所有节点的深度k次方之和即可 每次找到lca然后用之前处理出来的数组加加减减即可 代码
阅读全文
摘要:传送门 分析 首先先推荐一篇关于莫队的博客 这个题我们不难看出就是树上带修莫队 一直在犯sb错误,调了好长时间嘤嘤嘤 代码
阅读全文
摘要:传送门 分析 kruskal重构树上倍增求LCA 代码
阅读全文
摘要:传送门 题目 Input Output 分析 看到这个题不难想到倍增LCA,然后我们考虑如何计算。我们分别求出3个点中任意两点的LCA,为了走的步数最少所以肯定是先有两个点相遇然后另一个点走的它们相遇的点,至于最后的距离自己画一画就知道啦。 代码
阅读全文
摘要:传送门 题目 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边 长构成一个三角形。同时还支持单点修改。 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边 长构成一个三角形。同时还支
阅读全文
摘要:传送门 题目 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 输入格式: 输入文件第一行有两个用一个空格隔开的整数 n,m,表示 A 国有
阅读全文

浙公网安备 33010602011771号