摘要: 【笔记】吉如一线段树 吉如一论文(CQBZ内网,在 PDF 的 103 页 证明太复杂了,后面有时间来补。 1 区间最值操作 1.1 区间取 min(max),查询区间和 当前应该修改值为 \(x\); 维护区间最大值 \(mx\),最大值个数 \(t\),严格次大值 \(se\)。 如果走到一个区 阅读全文
posted @ 2024-08-13 15:27 CloudWings 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 1 引入 传统线段树能够通过打标记实现区间修改的条件有两个: 能够快速处理标记对区间询问结果的影响; 能够快速实现标记的合并。 有的区间修改不满足上面两个条件。 但存在一些奇妙的性质,使得序列每个元素被修改的次数有一个上限。 如果我们保证每暴力 \(O(\log n)\) 修改一次的时候都能修改到一 阅读全文
posted @ 2024-08-13 11:39 CloudWings 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 【题解】Solution Set - NOIP2024集训Day5 扫描线 「CF1401E」Divide Square 先把每一条线多出来的那些部分给截去。 然后每一条竖着的线可以把她的向前/向后的横着的线分成两半。 实际上也没什么用 结论: \(Ans=\) 正方形内交点个数 + 贯穿整个边长的 阅读全文
posted @ 2024-08-12 09:37 CloudWings 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 【题解】Solution Set - NOIP2024集训Day3 权值线段树、动态开点、主席树 「JSOI2018」列队 一个结论:所有的人都按顺序依次去她该去的位置,一定是不劣的。bf 现在式子变成了:(\(a_i\) 排序 \[Ans=\sum_{i=1}^{r-l+1}|a_i-(k+i-1 阅读全文
posted @ 2024-08-09 08:11 CloudWings 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 【题解】Solution Set - NOIP2024集训Day2 线段树 https://www.becoder.com.cn/contest/5431 「CF1149C」Tree Generator™ 结论: 对于括号序列的一个子段,删去所有的匹配括号之后,剩下的不匹配的括号,按顺序构成树上的一 阅读全文
posted @ 2024-08-08 08:45 CloudWings 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 【题解】Solution Set - NOIP2024集训Day1 数据结构 https://www.becoder.com.cn/contest/5429 「CF1428F」Fruit Sequences 线段树是可以维护区间最长子段的 1。 记固定右端点在 \(i\),的答案为 \(f_i\)。 阅读全文
posted @ 2024-08-07 11:29 CloudWings 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 【笔记】线段维护单调栈 维护单调栈的信息可以包括: 单调栈的大小; 单调栈里面元素的权值(可以和键值不一样)的极值/和。 1 核心思想 (以维护严格单增的单调栈为例,单减同理。 首先线段树内会维护区间最大值 \(mx\),和区间的答案 \(ans\)。 定义一个函数:\(calc(p,x)\) 表示 阅读全文
posted @ 2024-08-07 10:47 CloudWings 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1 Template 1.1 轻量化 灵活度较高,适合直接调用矩阵内值的情形。 typedef vector<vector<int>> Matrix; void resize (Matrix& a, int n, int m) { a.resize(n, vector<int>(m)); } Mat 阅读全文
posted @ 2024-08-06 11:07 CloudWings 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 新高一矩阵选讲「陶治霖」 https://www.becoder.com.cn/contest/5348 一般的转移矩阵可以放在初始矩阵的前面或者后面,下面为了叙述方便分别成为:前置转移矩阵、后置转移矩阵。 「CF1970E3」Trails (Hard) 考虑 DP。 定义 \(f_{i,j}\) 阅读全文
posted @ 2024-08-06 09:12 CloudWings 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 【笔记】多项式全家桶 参考资料 Warning 空间记得开两倍,因为有卷积,最后结果是两多项式长度之和。 Template p.s. 一般函数最开始是输出数组,后接输入数组,及其长度。 namespace NTT { const int gen = 3; int r[N]; void ntt (in 阅读全文
posted @ 2024-08-04 23:53 CloudWings 阅读(22) 评论(0) 推荐(0) 编辑