约数个数和 题目链接:luogu P3327 题目大意 给你 n,m 要你求 ∑i=1~n∑j=1~m d(ij),d 是约数个数。 多组数据。 思路 首先由一个比较神奇的东西: \(d(ij)=\sum\limits_{x|i}\sum\limits_{y|j}[gcd(x,y)=1]\) 这里证明一下: 先看我们可以只看一个质数的部分。 假设它的因子的出现次数是
小小网格 题目链接:ybtoj高效进阶 21177 题目大意 给你求 ∑i=1~n∑j=1~mφ(gcd(i,j))。 思路 重新写好看点: \(\sum\limits_{i=1}^n\sum\limits_{j=1}^m\varphi(\gcd(i,j))\) \(\sum\limits_{d}\varphi(d)\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=d]\) \(\sum\limits_{d}
计算一个式子:\(\sum\limits_{i = 1}^n \cfrac{n}{i}\)。 很明显可以直接一个\(for\)循环,\(O(n)\)求出结果,但是我们可以将其优化到\(O(\sqrt n)\)。 例题 AcWing199. 余数之和 给定正整数n和k,计算\((k \mod 1) + (k \mod 1) + ... + (k \mod n)\)的值。 \(1 \leq n, k \leq 10
G. GCD Festival 推式子 COMPFEST 13 - Finals Online Mirror 题意 给定数组\(a\),求 \[\sum_{i=1}^n\sum_{j=1}^ngcd(a_i,a_j) \cdot gcd(i,j) \]\[2 \leq n \leq 10^5\\ 1 \leq a_i \leq 10^5 \]分析 \(n = \sum_{d|n} \varphi(d)\) \(gcd(i,j) = \sum_{d|gcd(i,j)
之前在 loj 上写题目的时候碰到的一些问题,在这里记录一下解决方法。 \(\lfloor\dfrac{n}{i^k}\rfloor\) 这种类型的时间复杂度是 \(O(n^{\frac{1}{k+1}})\) 的。 当 \(i< n^{\frac{1}{k+1}}\) 的时候,只有 \(O(n^{\frac{1}{k+1}})\) 种取值。 当 \(i > n^{\frac{1}{k+1}}\)
题目链接 题目链接 题意 求 \(i\perp j\to p_i\perp p_j\) 的排列个数,部分位置钦定。\(n\leq 10^6\) 题解 首先质因子集合相同的数可以连边,其次我们可能会将两个 \(\lfloor \dfrac{n}{p_i}\rfloor\) 的质数 \(p_i\) 进行替换。那么没有钦定任何 \(p_i\) 是,将 \(1\) 看作一个大质数
杜教筛 作用:用来求积性函数前缀和,时间复杂度为\(O(n^\frac{2}{3})\) 积性函数 若对于函数 \(f(x)\) 满足 \(f(x)=f(a)*f(b)\) ,其中 \(x=a*b\) 且 \(gcd(a,b)=1\),那么 \(f(x)\) 为积性函数。 常见积性函数: \(\mu()\) ——莫比乌斯函数。 \(\phi()\) ——欧拉函数。\(\phi(n)=\su
Problem CF938C Constructing Tests 题目大意: 在一个 \(n \times n\) 的矩阵中填 \(0,1\),使得每一个 \(m \times m\) 的子矩阵中都包含至少一个 \(0\),要让 \(1\) 的个数最多。 现在知道最多有 \(x\) 个 \(1\),问满足条件的 \(n,m\),输出任意一个。如果不存在则输出 -1。 有多组数据,
数论分块 定义: 数论分块可以在 \(O \sqrt{n}\) 的时间里计算一些有除法下取整的和式。 主要是 将 \(\frac{n}{d}\) 相同的数一起同时计算。 定理: 定理 \(1\): \[a,b,c \in \mathbb{Z}, \lfloor \frac{a}{bc} \rfloor =\lfloor \frac{\lfloor\frac{a}{b}\rfloor}{c}\rfloor \]证明:
题目大意 小 S 在一棵被称为 OJT 的树上刷题。 这棵树上,有 \(n\) 个节点,每个节点上都有一道题目,每个节点上的题目难度可能会不同。 小 S 的能力有限,仅为k个单位能力,在第 \(i\) 个节点上的题目,难度为 \(D_i\)。 由于题目过毒,每做一道题都会杀死小S的脑细胞,使小 S 的能力值下降,做第
询问 \(n\mod 1+n\mod 2+n\mod 3+\cdots +n\mod m\) 对 \(10^9+7\) 取模的值. \(1\leq n,m\leq 10^{13}\) 考虑 \(\mathrm O(m)\) 地计算肯定是不可行的 . 是否可以和分解因数一样,只考虑 \(\mathrm O(\sqrt n)\) 之内的内容呢 ? 是可以的,观察可得对于 \(1\leq x\leq \sqrt n\) ,对
题目链接 题目链接 题意 重排数组,使得相邻两数之差绝对值的最小值尽可能大。\(n\leq 10^5\) 题解 排序,为了方便表述考虑连边。如果某条边的跨度不足 \(\lfloor \dfrac{n}{2}\rfloor\),我们可以通过调整覆盖它的某条边(变为交叉)来使答案不减。因此我们要连边使得每条边跨度都有 \(\lf
预期 实际 \(\Delta\) A 100 100 0 B 100 100 0 C 100 0 -100 D 10 29 +29 E 50 100 +50 总计 360 329 -31 A Largest Rectangle in a Histogram 单调栈板子 B 没有上司的舞会 树形\(DP\),\(f_{u,0}\)表示以\(u\)为根的子树在不选\(u\)时最大快乐指数,\(f_{u,1
题目 给定数组\(a\),对于某个元素\(a_i\)和区间\([l,r]\)满足\(l\le i \le r\)。如果将\(a_l,a_{l+1},...a_r\)排序后,原\(a_i\)在排序后的新位置为\(j\)(值相同是可以任意排序),那么\(a_i\)的奇异值为\(|j-\lfloor\frac{l+r+1}{2}\rfloor|\)。问每个元素最大的奇异值是多少。 题解
原理 \[a^n=\begin{matrix} \underbrace{ a*a*…*a } \\ n \end{matrix}\\ a^{13}=a^{(1101)_2}=a^8*a^4*a^1 \]应用 矩阵快速幂和多次置换 计算斐波那契数列可以构建\(2*2\)的转移矩阵从\(F_i,F_{i+1}\)到\(F_{i+1},F_{i+2}\)的变换,将转移矩阵用快速幂优化到\(n^3logk\) 把序列置
感觉这几个月做的数学都是把数学当工具的数学题,欧拉函数、莫比乌斯之类的好像上一次做还是在上一次 好几年前,于是在洛谷上找了几个专题来练一练。隔了感觉有两三年了,其实好多东西都忘差不多了。 (待更新) 目录零碎知识欧拉函数和欧拉定理卷积、莫比乌斯函数和莫比乌斯反演一些练习
模板题 定义$\lfloor x\rfloor$表示小于等于$x$的最大整数,$\lceil x\rceil$表示大于等于$x$的最小整数 不难发现,若$a\in Z^{+}$且$b,x\in Z$,则$ax\le b\iff x\le \lfloor\frac{b}{a}\rfloor$、$ax\ge b\iff x\ge \lfloor\frac{b-1}{a}\rfloor+1$ 通过拉格朗日插值法,预处理出$S_{k}
数论分块 对于某些数列求和操作,求和的项数过大,直接求和会超时,但是数列中数的种数较少,且相同的数分布连续。此时需要找到一种方式能快速求出每种数的分布边界,然后枚举每一种数快速求和。 基本形式类似于 ∑
会 F 写不来 E 了属于是…… 题意 给定 \(a,b,c,d,n\) ,令 \(f(x)=a+\lfloor\frac{x}{b}\rfloor,f(x)=c+\lfloor\frac{x}{d}\rfloor\) ,求 \(\sum_{i=1}^n[f(x)=g(x)]\) 。 \(T\) 组询问。 \((1\le T\le2\times10^5,1\le a,b,c,d,n\le10^6)\) 题解 数论大讨论水平仍然不行!!! 首先不考
题目 修复了一些小bug,(。・_・。)ノI’m sorry~ 给出集合 \(A\),设 \(n=\mid A\mid\),求 \(\sum_{i=1}^n\sum_{j=1}^n\text{lcm}(A_i,A_j)\)。 摸到这道题,我们马上就可以发现 \(A\) 中的元素是无序的,题目中给出的式子没法化简,所以我们不得不考虑转化式子。 数据范围 \(1\le A_i\le5e4\)
题目 看题解才会的(指把题解瞅了个遍),没脸发题解 简单性质 \[\large \begin{aligned} &\varphi(ij)=ij\prod_{p\mid ij}\frac{p-1}{p}\\ &\varphi(\text{gcd}(i,j))=\text{gcd}(i,j)\prod_{p\mid i,p\mid j}\frac{p-1}{p}\\ &\varphi(ij)\times\varphi(\text{gcd}
题目:Rings 题意:给出一个长为n的二进制串s,问是否可以找出其两个\(length \geq \lfloor \frac{n}{2} \rfloor\)的子串s1, s2(这两个串起点位置和终点位置不能同时相等),且\(f(s1) = f(s2) \times k(k \geq 0且为整数)\),分别输出两个串的起点和终点位置。 \(f(x):代表将一个二进制数x转
题意:给你一个数\(x\),每次有两种操作可以选择,一是从\(x\)跳到\([1,x-1]\)的任意一个数,二是跳到\(\lfloor \frac{x}{z} \rfloor\ \ (z \in[2,x])\).问你从\(x\)到一有多少种方案. 题解:假设\(S(x)\)为\(x\)能到达的所有位置的贡献\(f(i)\)集合,考虑\(S(x+1)\)和\(S(x)\)的差别
杜教筛 对于一个数论函数 \(f\) 我们希望求其前缀和, 这时可以引出另一个数论函数 \(g\) 则我们可以得到: \(\sum_{i=1}^{n}\sum_{d|i}g(d)f(\left \lfloor \frac{i}{d} \right \rfloor)=\sum_{i=1}^{n}g(i)S(\left \lfloor \frac{n}{i} \right \rfloor)\) 把第一个式子卷一下: \(\su
超水的 d1f 。暂时不知道长度限制是 \(\lfloor\frac{d}{2}\rfloor\) 有什么特殊意义。 经典套路题,将所有长为 \(\lfloor\frac{d}{2}\rfloor\) 的 \(s\) 子串都塞入 aho-corasick automaton,然后数位 dp 。 容斥掉下界,令 \(f(i,j,0/1,0/1)\) 表示从高到低考虑到第 \(i\) 位,在 aho-co