摘要:
RMQ问题——线段树+懒标记 线段树,基于分治思想,用来维护区间信息的二叉树结构 例如RMQ,区间和,区间GCD问题,在平均 \(O(\log n)\) 的时间复杂度内执行区间修改和查询操作 朴素的线段树的每个节点包含三个元素:左区间,右区间,区间元素统计值(以区间和为例) struct node{ 阅读全文
摘要:
可持久化权值线段树(主席树)笔记 区别于普通线段树,权值线段树维护的信息不同 普通线段树:节点区间是序列的下标区间,维护区间最值,区间和等信息 权值线段树:节点区间是序列的值域,维护值域内数出现的次数 *图片引自董晓算法 给定一个区间,询问该区间内的第 \(k\) 小值是多少,暴力的方案就是每次都开 阅读全文
摘要:
树状数组笔记 树状数组相比于线段树类的操作,支持单点修改与区间查询,代码量小于线段树类的一种精简算法 普通的树状数组可以维护满足结合律且可以差分运算的信息 树状数组的每个元素表示它管辖范围内的元素总值,(前缀和,乘积,异或等) 相比于线段树的每个父节点管辖两个儿子,树状数组允许一个父节点管辖多个儿子 阅读全文
摘要:
集训5 20250209 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A: 题目大意:给出一个整数和一个操作符,生成两个能组成这个数的因子 #include<bits/stdc++.h> #define cintie ios::sync_with_stdi 阅读全文
摘要:
数论基础E 同余式 如果两个整数 \(a,b\) 对 \(m\) 取余的余数相同,则 \(a,b\) 模 \(m\) 同余,记作 \(a\equiv b(mod\ m)\) 乘法逆元 若两个整数 \(a,b\) 互质,且满足同余方程 \(a\cdot x\equiv 1(mod\ b)\) ,则定义 阅读全文
摘要:
集训4 20250207 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ K: 题目大意:签到 #include<bits/stdc++.h> #define cintie ios::sync_with_stdio(false);cin.tie(0);cout 阅读全文
摘要:
集训3 20250127 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A: 题目大意:给定 \(n\) ,两个人轮流可以使 \(n\) 减去一个任意小于它且与它互质的数,求最后甲能否取胜 #include<bits/stdc++.h> using name 阅读全文
摘要:
数论基础D 整除分块/数论分块 快速计算一群向下取整的和式,打包同时计算拥有相同的 \(\lfloor\frac{n}{i}\rfloor\) 的分式,时间复杂度可以优化到 \(O(\sqrt n)\) 例如需要计算 \[\sum_{i=1}^{n} \lfloor \frac{n}{i} \rfl 阅读全文
摘要:
数论基础C 欧拉函数 \(1\) ~ \(n\) 中与 \(n\) 互质的数的个数叫做欧拉函数,记作 \(\phi (n)\) 有性质如下: 存在质数 \(p\) ,则 \(\phi(p)=p-1\) 存在质数 \(p\) ,则 \(\phi(p^k)=(p-1)p^{k-1}\) 于是可以推出欧拉 阅读全文
摘要:
集训1 20250122 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A: 题目大意:给出一个序列,找到一个不大于 \(2^{18}\) 的正整数 \(x\),使得 \(x\) 与序列中的任何数都不互为倍数关系 #include<bits/stdc++.h 阅读全文