上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 51 下一页
摘要: 考虑点分治。 路径的合并,只需要求出每个点到当前重心的字符串是否可以成为模式串依次相连的前缀或后缀即可。 这显然可以哈希维护,手推一下就知道咋做了。 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> 阅读全文
posted @ 2023-09-26 18:35 HappyBobb 阅读(31) 评论(0) 推荐(0)
摘要: *2800,不是很难,但有点卡常。 考虑 gcd⁡\gcdgcd 不是很好直接算,经典套路是分解质因数。 对 www 分解质因数,设结果为 w=p1a1×p2a2×⋯×pkakw=p_1^{a_1} \times p_2^{a_2} \times \cdots \times p_k^{a_k}w=p 阅读全文
posted @ 2023-09-24 20:45 HappyBobb 阅读(29) 评论(0) 推荐(0)
摘要: 简单题。 考虑枚举 LCA,显然 LCA 必然是 xxx 的祖先。 由于是完全二叉树,枚举 LCA 的复杂度显然是 O(log⁡n)O(\log n)O(logn) 的。 枚举之后,转化成子问题,求点 uuu 的子树中有多少个到 uuu 距离为 kkk 的点。 比较显然的,点 xxx 的子树中距离为 阅读全文
posted @ 2023-09-24 10:24 HappyBobb 阅读(22) 评论(0) 推荐(0)
摘要: 这不可撤销背包板子吗。 设 fif_ifi​ 表示凑出 iii 方案数。 加的时候加一下,删的时候减一下,注意两个循环顺序不一样,具体可以看代码理解。 #include <bits/stdc++.h> using namespace std; #define int long long const 阅读全文
posted @ 2023-09-24 08:44 HappyBobb 阅读(32) 评论(0) 推荐(0)
摘要: 一个有趣的结论是,一个图,选出若干个边集,满足他们的并为原图边集。则必有他们每个集合的 MST 的边的并,再求一次 MST 为原图的 MST。 考虑点分治,设当前重心为 uuu,设 dj=wj+dist(u,j)d_j = w_j + dist(u,j)dj​=wj​+dist(u,j),则有对于两 阅读全文
posted @ 2023-09-23 12:17 HappyBobb 阅读(29) 评论(0) 推荐(0)
摘要: 这为啥有 *3100。 考虑询问本质上在干什么。 树上两点之间边权最大值,相当于两点在 Kruskal 重构树(边权从小到大排序)上 LCA 的点权。 设 li,jl_{i,j}li,j​ 表示重构树上 iii 与 jjj 的 LCA,valival_ivali​ 表示重构树上 iii 的点权。 于 阅读全文
posted @ 2023-09-22 21:59 HappyBobb 阅读(26) 评论(0) 推荐(0)
摘要: 题意相当于,对 [l,r][l,r][l,r] 建出大根笛卡尔树后,求每个点的子树大小的和。 考虑点 iii 的子树大小的意义是什么?笛卡尔树上每个点的子树的编号连续。 设 LiL_iLi​ 表示 iii 左边第一个大于 aia_iai​ 的位置,RiR_iRi​ 表示右边第一个大于 aia_iai 阅读全文
posted @ 2023-09-21 21:08 HappyBobb 阅读(29) 评论(0) 推荐(0)
摘要: 与最小值相关,考虑求出每个点左右两边第一个小于这个数的点。可以用笛卡尔树或者单调栈维护。 设 fif_ifi​ 表示以 iii 为右端点的所有区间的最小值之和。考虑如何转移 fif_ifi​。 设 iii 左边第一个小于 aia_iai​ 的位置为 preipre_iprei​,则 fi=fprei 阅读全文
posted @ 2023-09-18 21:54 HappyBobb 阅读(21) 评论(0) 推荐(0)
摘要: Kruskal 重构树板子。 考虑建边权从大到小排序后跑 Kruskal 的重构树,对于当前点 uuu 和参数 www,只能走 ≥w\geq w≥w 边,即能去的点是 uuu 祖先中最浅的点权 ≥w\geq w≥w 的点所在子树内每个叶子节点。 发现边权修改后,相对大小不变,直接在重构树点权修改即可 阅读全文
posted @ 2023-09-17 18:04 HappyBobb 阅读(28) 评论(0) 推荐(0)
摘要: 典中典。 一个点集 SSS 的 LCA 是这些点中 DFS 序最小和最大的两点的 LCA。 所以必然只会删掉最大的或最小的。 线段树或 ST 表维护一下最大和次大,最小和次小就做完了。复杂度 O(nlog⁡n)O(n \log n)O(nlogn)。 阅读全文
posted @ 2023-09-17 12:56 HappyBobb 阅读(15) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 51 下一页