随笔分类 - 数论
摘要:题面 屠龙勇士 屠龙少年终成恶龙 设次数为 \(x\),攻击第 \(i\) 个 \(boss\) 时所选的剑的攻击力为 \(atk_i\),第 \(i\) 个 \(boss\) 的血量为 \(hp_i\)。 根据题设可知,要杀死一个 \(boss\) 必须满足 \(p_i \mid hp_i - x
阅读全文
摘要:前言 由于其由 Min_25 发明并最早开始使用,故称「Min_25 筛」。 从此种筛法的思想方法来说,其又被称为「Extended Eratosthenes Sieve」。 其可以在 \(O(\frac{n^{\frac{3}{4}}}{logn})\) 的时间复杂度下解决一类 积性函数 的前缀和
阅读全文
摘要:积性函数是什么? 如果当 \(a,b\) 互质时,有 \(f(ab) = f(a) * f(b)\),那么称函数 \(f\) 为积性函数。 如果当 \(a,b\) 不互质的时候,也有这个性质, 那么我们称函数 \(f\) 为完全积性函数。 常用的积性函数 \(\varphi(n)\):欧拉函数,\(
阅读全文
摘要:模板题面 模板题 预习笔记 学的是 cipolla ,因为看不懂 Tonelli-Shanks 。 找前数竞同学学了复数乘法之后对证明过程恍然大悟。。。 首先建立一个复数域,虽然不知道为什么要建一个复数域。。。 然后所有的数都可以用复数表示,即 \(A + Bi\) 的形式。 用随机数找到一个 \(
阅读全文
摘要:模板题面 【模板】原根 预习笔记 wiki 众所周知 OI 不需要证明。 首先原根的定义是: 对于互质的正整数 \(m\) 和整数 \(a\),如果 \(a\mod m\) 的阶等于 \(\varphi (m)\) 的话,就称 \(a\) 为模 \(m\) 的原根。 阶的定义是,对于互质的正整数 \
阅读全文
摘要:题面 Counting swaps 洛谷题面有误,n 的数据范围应该是 1e5。 题解 模数看错了,调了好久。。。 题目的要求是把一个 1 ~ n 的排列,变成单增数列,使交换次数最小,求方案数。 最后的排列一定是 1,2,3,…,n。 所以每个数都它们对应的数值的位置。 所以对于初始序列把每个数向
阅读全文
摘要:题面 计数 这道题的题面上没有说清楚,在输入中出现的数字其实就是给定的集合。 题解 读完题后可能会没有思路,但是很快便不难发现,如果我们从左到右依次扫描每一个数字,如果后面有比这个数字小的数,就可以把这和数拿到这位来,在后面的数字中排出比它小的数。于是这道题就变成了可重集的排列问题。 因为不会康托展
阅读全文
摘要:题面 反素数 题解 小蓝书 + 自己的补充 我们知道: 如果一个数 \(m = p_{1} ^ {k_1} * p_{2} ^ {k_2} * … *p_n ^ {k_n}\)。 那么它的约数个数等于 \(\prod_{i = 1} ^ {n} k_i + 1\) 所以我们可以通过搜索由小到大确定每
阅读全文
摘要:质数 欧拉筛 \(O(n)\) int prime[N],tot = 0; bool notprime[N]; void get_prime() { for(int i = 2; i <= N ;i++) { if(!notprime[i]) prime[++tot] = i; for(int j
阅读全文
摘要:题面 [POI2008]BLO-Blockade 题解 深度优先遍历这幅图。 设 \(siz[x]\) 表示在搜索树中,以 \(x\) 为根的子树的大小。 注意不连通的关系是双向的,所以$(x,y),(y,x)$算两次。 对于当前点 \(x\),有两种情况: \(x\) 是割点 那么删去 \(x\)
阅读全文
摘要:题面 模板题 #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int N = 105; double a[N][N]; int n; bool gauss() { for(int i =
阅读全文
摘要:题面 道路 双倍经验 题解 题意 对于每条道路,求出有多少条最短路经过它。 解析 先看看数据范围,不算大。 所以我们分别以每个点为起点,用 \(SPFA\) 求出每个点到源点的最短距离。 不难发现对于边 \((u,v,w)\),如果 \(dis[u] + w == dis[v]\),那么这条边一定在
阅读全文
摘要:题面 求正整数 题解 \(rqy\ dalao\) 学姐的题解 + 我自己的理解。 根据算数基本定理。 一个数可以被唯一分解为: \(p_{1} ^{k_1} * p_{2} ^{k_2} * …p_{n} ^{k_n}\) 根据组合的知识,它的因子个数显然等于: \((k_1 + 1) * (k_
阅读全文

浙公网安备 33010602011771号