LCA
文章平均质量分 74
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
NOIP提高组 2013货车运输
觉得题目水的离开 不屑的大佬请离开 不会图论的请离开 ……. 感谢您贡献的访问量————————————华丽的分割线———————————— 题面:题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 输入输出格式 输入原创 2017-07-15 21:42:19 · 273 阅读 · 0 评论 -
Kruskal重构树(货车运输)
。。。 和Kruskal生成树一样本来是u,v连一条f的边现在变成新建一个点,点权为f,u v都像它连无边权的边(实际上应该是u的根和v的根)这样树有一些性质:1.二叉树2.原树与新树两点间路径上边权(点权)的最大(最小)值相等3.子节点的边权(大于等于)小于等于父亲节点4.原树中两点之间路径上边权的最大(最小)值等于新树上两点的LCA的点权# include <iostream> # inclu原创 2017-12-09 10:59:10 · 734 阅读 · 0 评论 -
Bzoj2588 Count on a tree
离散化 主席树 每个点记录它到根的路径上的点 查询时u,v,lca,fa[lca]组合起来计算即可# include <bits/stdc++.h> # define IL inline # define RG register # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long l原创 2017-12-23 11:22:39 · 250 阅读 · 0 评论 -
[SDOI2013]森林
主席树 离散化后 每个点储存从根到它的路径上的点权 新加边时直接用启发式合并,直接把size小的重构 询问时sum[u]+sum[v]-sum[lca]-sum[fa[lca]]来比较,在树上二分 LCA用倍增求,在启发式合并时暴力更新 连通性用并查集维护,再维护每个联通快的size 空间开大点就可以过了# include <bits/stdc++.h> # define IL inl原创 2017-12-26 19:42:20 · 228 阅读 · 0 评论