摘要: 典题合集 前置芝士 点分治 适合处理大规模树上路径信息问题 树上路径分为:1.经过根节点的路径。2.不经过根节点的路径 [step] (1)找到树的重心做根,getroot() (2)求出子树中的各点到根的距离,getdis() (3)对当前树统计答案,calc() (4)分治各个子树,重复以上操作 阅读全文
posted @ 2023-11-11 12:02 White_Sheep 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 优先队列(priority_queue) 初始化 //升序队列,小顶堆 priority_queue <int,vector<int>,greater<int> > q; //降序队列,大顶堆 priority_queue <int,vector<int>,less<int> >q; priorit 阅读全文
posted @ 2023-11-07 21:49 White_Sheep 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 典题合集 树上路径长度为k的点对 树上DP 点分治 前置芝士 树的性质 一个有n个节点的树,一定有n-1条边。 深度优先搜索 邻接表存图+记录深度 const int N=100010; vector<int> G[N]; int n,dis[N]; void dfs(int u,int f){ f 阅读全文
posted @ 2023-11-05 21:55 White_Sheep 阅读(4) 评论(1) 推荐(0) 编辑
摘要: 前置芝士 异或 树中可以形成回文的路径数 [problem description] 给你一棵 树(即,一个连通、无向且无环的图),根 节点为 0 ,由编号从 0 到 n - 1 的 n 个节点组成。这棵树用一个长度为 n 、下标从 0 开始的数组 parent 表示,其中 parent[i] 为节 阅读全文
posted @ 2023-11-05 21:35 White_Sheep 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 倍增思想 ST表 (Sparse Table,稀疏表)是一种简单的数据结构,解决RMQ(区间最大/最小值查询)问题。主要应用倍增思想。O(NlogN)的预处理,O(1)的查询。ST 表是用于解决 可重复贡献问题 的数据结构。 [预处理ST表] 倍增法递推:用两个等长小区间拼凑一个大区间。 阅读全文
posted @ 2023-11-04 17:48 White_Sheep 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 子树大小 int size[N]; void dfs(int u,int fa){ size[u]=1; for(int i=0;i<g[u].size();i++){ int v=g[u][i]; if(v==fa) continue; dfs(v,u); size[u]+=size[v 阅读全文
posted @ 2023-11-02 11:25 White_Sheep 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 倍增算法 本质思想:可以通过二进制数任意组合拼凑出任意一个正整数 最近公共祖先(LCA) [problem description] 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 [input] 第一行包含三个正整数 \(N,M,S\),分别表示树的结点个数、询问的个数和 阅读全文
posted @ 2023-11-01 23:08 White_Sheep 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 最长公共子序列 朴素算法 时间复杂度:\(O(n^2)\) const int N=1001; int a[N],b[N],dp[N][N]; int n; int solve(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1; 阅读全文
posted @ 2023-10-29 17:52 White_Sheep 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 前置芝士 树上选点 [problem description] 给定一棵树,树根为 1,每个点的点权为 \(V_i\) 。 你需要找出若干个点 Pi,使得: 每两个点 Px, Py 互不相邻; 每两个点 Px, Py 与树根的距离互不相同; 找出的点的点权之和尽可能大。 请输出找到的这些点的点权和的 阅读全文
posted @ 2023-10-29 10:26 White_Sheep 阅读(13) 评论(0) 推荐(0) 编辑
摘要: Hello World 阅读全文
posted @ 2023-10-27 21:28 White_Sheep 阅读(3) 评论(0) 推荐(0) 编辑