摘要: P7722 题解 阅读全文
posted @ 2025-09-06 23:15 整齐的艾萨克 阅读(8) 评论(0) 推荐(0)
摘要: 同余最短路学习笔记 阅读全文
posted @ 2025-08-26 22:11 整齐的艾萨克 阅读(21) 评论(0) 推荐(0)
摘要: A. 【例题1】树上问题 板子,树状数组统计即可。 #include <iostream> #define N 80005 #define int long long int n,K,hed[N],tal[N],wt[N],nxt[N],cnte,ans; void de(int u,int v,i 阅读全文
posted @ 2025-07-07 07:54 整齐的艾萨克 阅读(10) 评论(0) 推荐(0)
摘要: A. 【例题1】树的统计 板子。树链剖分 + 线段树。 #include <iostream> #define N 100005 int n,m,hed[N],tal[N],nxt[N],cnte,rt; void de(int u,int v) {tal[++cnte]=v,nxt[cnte]=h 阅读全文
posted @ 2025-07-04 12:33 整齐的艾萨克 阅读(11) 评论(0) 推荐(0)
摘要: 笛卡尔树题最难的地方永远不是笛卡尔树本身。 A. 【例题1】棋盘 发现可以把棋盘分割成若干个矩形,把问题转化成每个矩形里的方案数,再统计答案。 考虑建出一棵小根笛卡尔树,由笛卡尔树的性质可知,每棵子树都对应序列的一个区间。 对每个节点,令它子树的区间范围为 \([L,R]\),那么该节点就代表一个左 阅读全文
posted @ 2025-07-04 08:09 整齐的艾萨克 阅读(13) 评论(0) 推荐(0)
摘要: P5025 阅读全文
posted @ 2025-07-03 16:15 整齐的艾萨克 阅读(15) 评论(0) 推荐(0)
摘要: A. 【例题1】二维线段树 如题。注意需要在内层树的节点上维护所在外层树节点的子树上对应的内层节点。听起来有点绕,那就看看代码吧。 #include <iostream> #include <cstring> #define N 805 #define M 1000005 int n,m,a[N][ 阅读全文
posted @ 2025-07-01 09:10 整齐的艾萨克 阅读(11) 评论(0) 推荐(0)
摘要: A. 【例题1】区间第k小 主席树板子。注意需要离散化。 #include <iostream> #include <algorithm> #include <vector> #define N 100005 int n,m,rt[N],a[N]; std::vector<int> b; names 阅读全文
posted @ 2025-06-30 16:35 整齐的艾萨克 阅读(6) 评论(0) 推荐(0)
摘要: A. 【例题1】普通平衡树 B. 【例题2】带插入区间k小值 书上给的题解是替罪羊树套权值线段树,但是这里使用块状链表套值域分块。 具体地,在每个块维护每个数出现次数的前缀和、每块数出现次数的前缀和,即 \([1,R_i]\) 区间内每个数、每块数的出现次数。 查询 查询操作,开一个值域分块用来存储 阅读全文
posted @ 2025-06-30 15:51 整齐的艾萨克 阅读(14) 评论(0) 推荐(0)
摘要: Warning:本章大部分题目用块状链表而非 Splay 实现,如果想学 Splay 不要看这篇。 A. 【例题1】波动值之和 不难发现,使 \(|a_i-a_j|\) 最小的 \(a_j\) 一定是 \(a_i\) 在前面的数中的前驱或后继。 如果这个数已经出现过了,那么答案为 \(0\),且无需 阅读全文
posted @ 2025-06-28 13:05 整齐的艾萨克 阅读(12) 评论(0) 推荐(0)