摘要: P5304 [GXOI/GZOI2019] 旅行者 有向图,\(k\) 个关键点,求任意两个关键点之间最短路的最小值。多测。 \(n\le10^5,m\le5\times10^5,w\le2\times10^9\)。 \(O(n\log^2n)\) 做法 注意到求两两之间最短路,考虑将关键点分为两个 阅读全文
posted @ 2025-01-05 23:09 仙山有茗 阅读(17) 评论(0) 推荐(0)
摘要: P3953 [NOIP2017 提高组] 逛公园 折半搜索 将原有的数据分成两部分分别进行搜索,最后在中间合并。 CF1779H Olympic Team Building \(n\) 个人比赛,第 \(i\) 个人的实力为 \(s_i\)。\(n\) 为 \(2\) 的次幂。 对于每轮比赛,设有 阅读全文
posted @ 2025-01-05 23:00 仙山有茗 阅读(16) 评论(0) 推荐(0)
摘要: 1 阅读全文
posted @ 2025-01-05 22:59 仙山有茗 阅读(5) 评论(0) 推荐(0)
摘要: 维护一个序列: 单点修改。 给定 \(x\),查询区间有多少个位置 \(i\) 满足 \(a_i=x\)。 线段树套 map,可以 \(O(\log)\)。哈希表?\(O(1)\)。 树状数组套 map: map<int,int> t[N]; int find(int x,int y){ // 查询 阅读全文
posted @ 2025-01-05 22:57 仙山有茗 阅读(20) 评论(0) 推荐(0)
摘要: 会一种即可。 比线段树多的功能: 区间翻转 插入/删除 \(\large\texttt{Treap}\) Treap 即 Tree + Heap。相比二叉搜索树,每个节点多维护一个随机数 \(pri\) 作为权值,并按照 \(pri\) 维护整棵树的堆的性质。这样可以避免复杂度退化。 板子: con 阅读全文
posted @ 2025-01-05 22:56 仙山有茗 阅读(13) 评论(0) 推荐(0)
摘要: P4551 最长异或路径 求出每个点到根的异或和,插入 01-Trie 中。 U109923 [Codechef REBXOR]Nikitosh and xor 枚举分割点,差分预处理左右区间异或和。 P8511 [Ynoi Easy Round 2021] TEST_68 先求出全局最优,找到其路 阅读全文
posted @ 2025-01-05 22:55 仙山有茗 阅读(11) 评论(0) 推荐(0)
摘要: 1 阅读全文
posted @ 2025-01-05 22:52 仙山有茗 阅读(5) 评论(0) 推荐(0)
摘要: 对于与大整数数位有关的问题,可以考虑使用数位 dp 解决,将大整数看作一个由 \(0 \sim 9\) 构成的整数序列来 dp。 P2657 [SCOI2009] windy 数 不含前导零且相邻两个数字之差至少为 \(2\) 的正整数为 windy 数。求 \([l,r]\) 中 windy 数个 阅读全文
posted @ 2025-01-05 22:52 仙山有茗 阅读(21) 评论(0) 推荐(0)
摘要: 1 阅读全文
posted @ 2025-01-05 22:45 仙山有茗 阅读(7) 评论(0) 推荐(0)
摘要: 启发式合并 若干个集合 \(S_1,S_2,\dots,S_m\),令 \(|S_1|\le|S_2|\le\dots\le|S_m|\)。现在将它们合并成一个大集合,保留 \(S_m\),将其他集合合并到 \(S_m\) 中。合并过程形成一个树的结构,重量上的点不需要合并。每个叶节点合并的次数即为 阅读全文
posted @ 2025-01-05 22:28 仙山有茗 阅读(24) 评论(0) 推荐(0)
摘要: int a[N],b[N],n; // a=b sort(a+1,a+n+1); int len=unique(a+1,a+n+1)-a-1; for(int i=1; i<=n; i++) b[i]=lower_bound(a+1,a+len+1,b[i])-a; 排序+去重解决值域过大问题,用处 阅读全文
posted @ 2025-01-05 22:22 仙山有茗 阅读(7) 评论(0) 推荐(0)
摘要: 有多个需要二分的对象的时候,有时候可以放在一起来二分。 整体二分学习笔记 - 洛谷专栏。 todo. 阅读全文
posted @ 2025-01-05 22:19 仙山有茗 阅读(6) 评论(0) 推荐(0)
摘要: [学习笔记]CDQ分治和整体二分 - 洛谷专栏 阅读全文
posted @ 2025-01-05 22:14 仙山有茗 阅读(5) 评论(0) 推荐(0)
摘要: 降维。 P5490 【模板】扫描线 & 矩形面积并 【学习笔记】扫描线 - 洛谷专栏。 离散化后线段树维护当前覆盖区间长度并计算答案。 需要注意的是线段树的叶子结点不能表示数轴上的一个点,要表示一段区间。所以可以令线段树上的 \([l,r]\) 表示实际上的 \([l,r+1]\) (离散化后)。 阅读全文
posted @ 2025-01-05 22:12 仙山有茗 阅读(44) 评论(0) 推荐(0)
摘要: 用来求单峰函数的极值点。 字面意思,把区间分成三份,每次根据切割点的关系选择丢弃左边或右边区间。每次操作可以使区间长度 \(\text{len} \larr \text{len} \times \dfrac{2}{3}\)。 考虑优化,既然是丢弃左右区间,那就可以使左右区间尽可能大,尝试使时间复杂度 阅读全文
posted @ 2025-01-05 22:11 仙山有茗 阅读(11) 评论(0) 推荐(0)
摘要: \(n\) 个物品,每个物品有两个权值 \(a_i,b_i\),令 \(w_i\) 表示选或不选,最大化或最小化 \(\dfrac{\sum w_i \times a_i}{\sum w_i \times b_i}\)。 二分一个 \(t\) 使得 \(\dfrac{\sum w_i \times 阅读全文
posted @ 2025-01-05 22:01 仙山有茗 阅读(9) 评论(0) 推荐(0)
摘要: 定义 若整数 \(n\) 除以整数 \(d\) 的余数为 \(0\),即 \(d\) 能整除 \(n\),则称 \(d\) 是 \(n\) 的约数,\(n\) 是 \(d\) 的倍数,记为 \(d|n\)。 记 \(p_i\) 为质数,\(c_i\) 为指数。 算术基本定理 对于任意大于 \(1\) 阅读全文
posted @ 2025-01-05 21:49 仙山有茗 阅读(84) 评论(0) 推荐(0)