摘要: 问题如题目所示。 方法有很多,本文说三种: 树上倍增/LCA魔改 O(n logn) 预处理得到fa数组,倍增向上跳跃,求祖先即可。 int fa[N][21],dep[N]; void dfs_lca(int u,int father){ dep[u]=dep[father]+1; fa[u][0 阅读全文
posted @ 2022-08-10 21:14 kingwzun 阅读(71) 评论(0) 推荐(0) 编辑
摘要: J Number Game 签到 推公式即可 代码: #include <bits/stdc++.h> #define endl '\n' // #define int long long using namespace std; const int N = 205, M = 805; int n, 阅读全文
posted @ 2022-08-10 20:15 kingwzun 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 原文:https://oi-wiki.org/string/sa/ 后缀数组 下面说的都是倍增法实现。 字符串下标都从 1 开始。 算法作用: 在$O(nlogn)$的时间复杂下实现 后缀数组有两个关键的数组: sa[i]表示将所有后缀排序后第 i 小的后缀的编号 height[i] 表示 sa[i 阅读全文
posted @ 2022-08-10 15:12 kingwzun 阅读(112) 评论(0) 推荐(0) 编辑