随笔分类 -  学习笔记

该文被密码保护。
posted @ 2026-04-12 13:40 wmq2012 阅读(1) 评论(0) 推荐(0)
摘要:P3870 [TJOI2009] 开关 分块和线段树都可以, 我用的分块 修改 散块: 直接根据每一个位置的数该区块内的 \(1\) 个数 整块: 打上标记(标记两次等于没标记) 查询 散块: 加上每一个位置的数,注意每一个位置上实际上的数应该是它自己位置上的数在异或上所处块内的标记 整块: 有标记 阅读全文
posted @ 2025-12-27 17:01 wmq2012 阅读(11) 评论(0) 推荐(0)
摘要:P3871: 平衡树模板,每一次加入一个数,然后直接用排名求出中位数 P1503: 平衡树模板,将修复摧毁视为添加删除,答案是前驱后继的差\(+1\) P4145 开不了多少就会变成1,多出来的开根操作没有意义,直接分块暴力对每一个块开根,同时如果和等于区间长度,说明该区间已经全部为1,不在进行之后 阅读全文
posted @ 2025-10-23 09:36 wmq2012 阅读(4) 评论(0) 推荐(0)
摘要:dfs序基础1 给一棵有根树,这棵树由编号为 \(1\dots N\) 的 \(N\) 个结点组成。根结点的编号为 \(R\)。每个结点都有一个权值,结点 \(i\) 的权值为 \(v_i\)。 接下来有 \(M\) 组操作,操作分为两类: 1 a x,表示将结点 \(a\) 的权值增加 \(x\) 阅读全文
posted @ 2025-09-13 21:10 wmq2012 阅读(30) 评论(0) 推荐(0)
摘要:P3834 【模板】可持久化线段树 2 虽然是可持久化线段树的题,但是也可以用莫队+值域分块来做 这个题类似于之前将到的由乃打扑克但是用之前的做法无法通过这道题。 静态查询第k小,想到另一种做法 先把所有的数离散化,值域就只到 \(2e5\) 用莫队来处理查询,接下来考虑 \(SUB\) 删除,和 阅读全文
posted @ 2025-08-06 11:39 wmq2012 阅读(19) 评论(0) 推荐(0)
摘要:莫队 对于一些区间问题如果已经知道 \([l,r]\) 区间问题的答案,那么可以通过加减 \(l\) ,\(r\) 两个节点的信息,得到 \([l+1,r]\),\([l-1,r]\),\([l,r-1]\),\([l,r+1]\),这样就可以的到所有区间查询的答案 具体做法是离线后排序,顺序处理每 阅读全文
posted @ 2025-08-04 16:33 wmq2012 阅读(10) 评论(0) 推荐(0)
摘要:P4109 [HEOI2015] 定价 可以想到预处理一段区间最小「荒谬值」的数 但是如果记录每一个「块」的左右端点,和每个点所属的「块」空间不够 所以可以直接对于每个点动态处理 对于点 \(x\) 它所处的「块」就是 \(\lfloor \frac{x}{len}\rfloor+1\) 对于「块」 阅读全文
posted @ 2025-08-04 15:14 wmq2012 阅读(10) 评论(0) 推荐(0)
摘要:分块进阶 分块的其他用法 P3793 由乃救爷爷 题意 题意是说对于一个长度为 \(n\) 的 \(a\) 序列有 \(m\) 次询问,每一次需要回答一个区间的最大值大小 时限 : 5s 内存 : 500MB 思路 \(st\)表 由于没有修改,全都是查询,可以想到 \(st\) 表 \(st\) 阅读全文
posted @ 2025-08-02 17:04 wmq2012 阅读(22) 评论(0) 推荐(0)
摘要:分块基础 分块思想 分块是一种思想,而不是一种数据结构。 分块的基本思想是,通过对原序列的划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。 ——OI Wiki 区间修改,区间查询 预处理 将原序列分成若干段,对于每一个「块」预处理它 的和,左右端点 对于没一个元 阅读全文
posted @ 2025-08-01 15:50 wmq2012 阅读(42) 评论(0) 推荐(0)
摘要:前言 二维状态压缩动态dp的核心在于处理行间状态依赖,通常用于网格类问题(如棋盘覆盖、放置问题等)。 核心思想 重点 1.状态设计 将当前行和前一行的状态共同编码,以处理行间约束 如何选择状态维度以覆盖所有约束条件 2.状态转移方程 通过位运算判断状态间的合法性,推导转移条件。 行间约束,确保合法; 阅读全文
posted @ 2025-08-01 14:51 wmq2012 阅读(27) 评论(0) 推荐(0)
摘要:集合 全集:所有数字全选的情况,U表示,U=(1<<m)-1 补集:一般成为A的补集=U-A,表示为U^A 交集:两个集合共同选择的部分, A&B 并集:两个集合所有的选择,A|B 空集:一定是左右集合的子集 子集:A集合表示一种选择的情况,子集叫做B集合,A集合的子集 真子集:不包含A集合本身 A 阅读全文
posted @ 2025-08-01 14:51 wmq2012 阅读(17) 评论(0) 推荐(0)
摘要:分类 选点 最大独立集:在树上选取一些点,使得点之间两两之间没有边相连,求能选取的最多点数或最大点权。 最小点覆盖:选取最少的点,使得树中的每条边都至少有一个端点被选中。可通过最大独立集的关系转化求解,因为树上的最大独立集与最小点覆盖互补。 选线 ............ 树上背包 ........ 阅读全文
posted @ 2025-08-01 14:49 wmq2012 阅读(5) 评论(0) 推荐(0)
摘要:线段树优化建图:高效处理大规模区间连边问题 在面对图论问题中需要将单点连接到整个区间,或将整个区间连接到单点的场景时,线段树优化建图通过引入辅助的线段树结构,将建边复杂度从 O(n) 降至 O(log n),极大提升了算法效率。 一、问题背景:大规模区间连边的困境 在传统图论问题中,若需实现以下操作 阅读全文
posted @ 2025-07-23 15:18 wmq2012 阅读(224) 评论(0) 推荐(2)
摘要:本文由ai生成 一、主要优化建图技术 1. 线段树优化建图 适用场景:区间到区间/点到区间/区间到点的连边 实现原理: 构建入树(叶子→原图点,父→子)和出树(原图点→叶子,子→父) 通过虚点中转,将区间拆分为 \(O(\log n)\) 个节点 复杂度:点数 \(O(n)\),边数 \(O(n + 阅读全文
posted @ 2025-07-22 20:57 wmq2012 阅读(125) 评论(0) 推荐(2)