摘要: 单调栈 定义 一种栈,其中的元素满足单调性 解决NGE问题 NGE问题(Next Greater Element) #include<bits/stdc++.h> using namespace std; const int N=3e6+10; int n; int a[N],stk[N],f[N] 阅读全文
posted @ 2024-02-27 00:27 Reality_Creator 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 基数排序和计数排序 跟比较排序比起来,感觉复杂度开挂了 计数排序非常依赖于数值范围,是开了一个值域的桶,然后对着桶输出所有元素,在值域小的情况下非常的快 \(O(V+n)\) 计数排序还有一种权值线段树优化,可以解决大值域问题 \(O(n\log V)\),但是没有什么用删掉 基数排序可以看作计数排 阅读全文
posted @ 2024-02-27 00:27 Reality_Creator 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 随机化 这是一个脱离了理论,但是及其实用的领域。 随机数的生成 1.1 mt19937 mt19937 可以生成 32 位整数,基于梅森旋转算法,实用性较强。笔者习惯于使用时间的随机种子。 mt19937 engine(chrono::system_clock::now().time_since_e 阅读全文
posted @ 2024-02-27 00:16 Reality_Creator 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 卡常科技 针对于毒瘤出题人 IO optimize cin/cout 很慢,但是 ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cout<<endl;//Wrong cout<<'\n';//Right scanf/printf 比较快,但对于毒瘤 阅读全文
posted @ 2024-02-26 23:32 Reality_Creator 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1.根号分治与分块 在预处理与询问的复杂度之间寻找平衡的一个算法,通常以根号为分界线。属于智慧的暴力。 1.1. 根号平衡 使用数学不等式对于阈值取一个值,使得复杂度最优。如果有阈值 \(B\),若问题有一部分暴力可以 \(O(B)\) 解决,另一部分可以 \(O(\frac{n}{B})\) 解决 阅读全文
posted @ 2024-02-26 23:06 Reality_Creator 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 树套树 树状数组,(动态开点线段树),平衡树 二逼平衡树 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询 \(k\) 在区间内的排名 查询区间内排名为 \(k\) 的值 修改某一位值上的数值 查询 在区间内的前驱(前驱定义为小于 ,且最大的数) 查询 \(k 阅读全文
posted @ 2024-02-25 22:21 Reality_Creator 阅读(4) 评论(0) 推荐(0) 编辑
摘要: ABC342总结 A+B+C+D 虽然有奖,但是一无所获,都排到2000名左右了。 赛时快速通过前四题,但是第五题被题目迷惑,第六题思路混乱,第七题本来是能力范围之内(数据结构是chn oier的特长),但是没读题。 E 一个最短路,这是有提示的,但是有一个迷惑信息。题目让我们求从 A 最晚出发的时 阅读全文
posted @ 2024-02-25 11:55 Reality_Creator 阅读(33) 评论(0) 推荐(0) 编辑
摘要: ABC341总结 Score:1825 Rank:737 F 其实按照题意,原图可能有环,但是因为转移有权值限定,转换一下就是DAG,进行拓扑排序。 G AK所差最后一题,使用数形结合思想,x轴为数组下标,y轴为值域。 题意是给出左端点,右端点任意,求区间平均值最大 进行前缀和处理,然后会惊奇的发现 阅读全文
posted @ 2024-02-22 23:47 Reality_Creator 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 笛卡尔树 定义 以一个数列为基础,存储数列中元素,满足两个限制的树。一是数列中元素的下标满足二叉搜索树的性质,二是元素的大小满足堆的性质。 建树 使用单调栈,在线建树。考虑从左往右在已有的笛卡尔树中添加元素,因为新元素的下标最大,所以只可能取代最右链中的某个元素,并将其收为左儿子。又由于堆的性质,所 阅读全文
posted @ 2024-02-22 23:39 Reality_Creator 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 区间最大最小值(RMQ) st 表 利用 min,max区间合并是可重的,倍增预处理 时间复杂度 \(O(n \log n+ q)\) 空间复杂度 \(O(n\log n)\) 线段树 二进制划分区间 时间复杂度 \(O(n \log n)\) method of four russians 建立笛 阅读全文
posted @ 2024-02-22 23:39 Reality_Creator 阅读(6) 评论(0) 推荐(0) 编辑