
树上问题
爱睡觉的Raki
我不能只做观众
展开
-
简单记录 Part1.3
CF1242B 0-1 MST1.CF1242B 0-1 MST求补图中联通块个数先找到原图中度数最小的点,该点在补图中度数最大,标记原图中与其相连的所有点,补图中所有的点都与其相连暴力遍历每个点,若已经与度最小的点相连或者为该点则跳过,标记与该点相连的所有点,与未标记的所有点相连边数最多只有10510^5105条,复杂度并不会很大#include<bits/stdc++.h>#define int long longusing namespace std;constexp.原创 2020-12-10 21:56:25 · 132 阅读 · 0 评论 -
简单记录 Part1.2
CF700B Connecting UniversitiesCF1081D Maximum DistanceCF263D Cycle in GraphCF645D Robot Rapping Results ReportCF1067B MultihedgehogCF67A Partial Teacher789101.CF700B Connecting Universities记录每条边会被多少个大学走过#include<bits/stdc++.h>#define i.原创 2020-12-08 20:01:50 · 222 阅读 · 0 评论 -
简单记录 Part1.1
1.CF1328D Carousel分类讨论:1:为偶数,输出12121212…2:为奇数,但是有两个连续的图形相同,从此位置断开输出121212…且没有任何相邻的图形相同,输出121212…3#include<bits/stdc++.h>#define int long longusing namespace std;constexpr int maxn=4e5+5,inf=0x3f3f3f3f,mod=1e9+7;int n,m,t,a[maxn],res[maxn];原创 2020-12-05 18:00:17 · 885 阅读 · 0 评论 -
最短路径树简谈
在最开始,我们要知道最短路径树是个什么东西,不同于最小生成树,最短路径树是选一个节点为根,得到一颗树上的所有点,与原图中根节点到其的最短距离相等。因为很多要用到边的记录,然而我比较菜只会用链式前向星方便的记录边,所以在写最短路路径树的过程中全用的链式前向星存图(先来个比较板子的CF545E Paths and Trees题意:给定一张带正权的无向图和一个源点,求边权和最小的最短路径树。思路:在跑dij的过程中记录每个点的前驱边,因为题目要求边权和最小,所以如果遇到相同的最短距离,我们应该选取前驱边原创 2020-12-05 17:05:04 · 504 阅读 · 0 评论 -
能力提升综合题单 Part 8.3.3 最近公共祖先
两个点的最近公共祖先,即两个点的所有公共祖先中,离根节点最远的一个节点。求解最近公共祖先,常用的方法是树上倍增或者树链剖分。P3379 【模板】最近公共祖先(LCA)P3938 斐波那契P4281 [AHOI2008]紧急集合 / 聚会1.P3379 【模板】最近公共祖先(LCA)倍增法求lca,tarjan还没学…总体思路是记录每个点的深度,并记录它的第2^i的祖先的是哪个节点把log2(i)+1进行打表储存求lca的时候先让x>y,然后跳到同一深度倍增跳到他们的lca的下一原创 2020-06-19 22:54:26 · 355 阅读 · 0 评论 -
能力提升综合题单Part 8.3.1 二叉树&Part 8.3.2 树的直径
P1087 FBI树P1030 求先序排列P1305 新二叉树P1229 遍历问题P5018 对称二叉树P5597 【XR-4】复读P2195 HXY造公园P3629 [APIO2010]巡逻P5536 【XR-3】核心城市P1099 树网的核P4408 [NOI2003]逃学的小孩1.P1087 FBI树递归求解,判断是否为’0’串或者’1’串即可#include<bits/stdc++.h>using namespace std;string a;int .原创 2020-06-18 23:31:21 · 287 阅读 · 0 评论