数论
文章平均质量分 77
1
kaka0010
退役ACMer/算法竞赛菜鸡
展开
-
ICPC网络赛第二场 L.Euler Function 欧拉函数性质+势能线段树
原题链接:https://pintia.cn/problem-sets/1441745686294945792/problems/1441745856154955787目录题意分析Code题意有n个数的序列ai,有两种操作l r x 对区间[l,r][l,r][l,r]的数乘xl r 求∑lrϕ(ai)\sum_{l}^{r}\phi(ai)∑lrϕ(ai)分析根据欧拉函数性质,欧拉函数是一个积性函数,因此对于任意prime,ϕ(n∗prime)=ϕ(n)∗prime[gcd(n原创 2021-09-28 10:30:17 · 364 阅读 · 0 评论 -
Codeforces Round #146 (Div. 1) E. Number Challenge 莫比乌斯反演
原题链接:https://codeforces.ml/contest/235/problem/E目录题意化简Code题意∑i=1a∑j=1b∑k=1cd(ijk)\sum_{i=1}^{a}\sum_{j=1}^{b}\sum_{k=1}^{c}d(ijk)i=1∑aj=1∑bk=1∑cd(ijk)d(n)代表n的因子个数d(n)代表n的因子个数d(n)代表n的因子个数化简已知结论d(ij)=∑x∣i∑y∣j[gcd(x,y)=1]已知结论d(ij)=\sum_{x|i}\sum_{y|j原创 2021-03-29 14:50:18 · 180 阅读 · 3 评论 -
HDU 6390 GuGuFishtion 莫比乌斯反演+欧拉函数性质
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6390目录题意化简Code题意∑a=1m∑b=1nGu(a,b)\sum_{a=1}^{m}\sum_{b=1}^{n}Gu(a,b)a=1∑mb=1∑nGu(a,b)Gu(a,b)=ϕ(ab)ϕ(a)ϕ(b)Gu(a,b)=\frac{\phi(ab)}{\phi(a)\phi(b)}Gu(a,b)=ϕ(a)ϕ(b)ϕ(ab)化简首先考虑对Gu函数进行变换,利用到欧拉函数的性质ϕ(pk)=(p原创 2021-03-29 13:45:12 · 146 阅读 · 1 评论 -
牛客小白月赛12 D 月月给华华出题 莫比乌斯反演
原题链接:https://ac.nowcoder.com/acm/contest/392/D目录题意化简Code题意求∑i=1nigcd(i,n)求\sum_{i=1}^{n}\frac{i}{gcd(i,n)}求i=1∑ngcd(i,n)i化简∑i=1nigcd(i,n)\sum_{i=1}^{n}\frac{i}{gcd(i,n)}i=1∑ngcd(i,n)i=∑d∣n∑i=1nid[gcd(i,n)=d]=\sum_{d|n}\sum_{i=1}^{n}\frac{i}{d}[gc原创 2021-03-28 11:11:15 · 1883 阅读 · 5 评论 -
牛客小白月赛7 J方格填色 状态压缩 + 矩阵加速
原题链接:https://ac.nowcoder.com/acm/contest/190/J目录题意分析Code题意有一个m * n的矩阵,如果左右两格不能同为白色,左右两列不能同为黑色,问有多少染色的方法分析因为m只有5,而n有1e18因此肯定是用到状态压缩的,很容易我们可以选出相邻两列中可行的状态转移规律,只要两列不同为0 or 与运算后为0,这样都是符合要求的状态,接下来就是用两列来写出递推的公式。可以构造出一个矩阵来优化线性的计算,我们将所有的状态看成点,这个矩阵其实就是一张图,如果是1原创 2021-03-15 14:32:26 · 157 阅读 · 0 评论 -
HDU5608 function 杜教筛 + 莫比乌斯反演
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5608题意N2−3N+2=∑d∣Nf(d)N^2-3N+2=\sum_{d|N}f(d)N2−3N+2=d∣N∑f(d)计算∑i=1Nf(i)计算\sum_{i=1}^{N}f(i)计算i=1∑Nf(i)化简先设一个函数g(N)=N2−3N+2=∑d∣Nf(d)g(N) =N^2-3N+2=\sum_{d|N}f(d)g(N)=N2−3N+2=d∣N∑f(d)根据莫比乌斯反演中的约数反演定理原创 2021-03-15 14:12:03 · 121 阅读 · 0 评论 -
P1891 疯狂LCM 莫比乌斯反演
原题链接:https://www.luogu.com.cn/problem/P1891目录题意化简Code题意∑i=1ngcd(i,n)\sum_{i=1}^{n}gcd(i,n)i=1∑ngcd(i,n)化简=n∑d∣n∑i=1nid[gcd(i,n)=d]=n\sum_{d|n}\sum_{i=1}^{n}\frac{i}{d}[gcd(i,n)=d]=nd∣n∑i=1∑ndi[gcd(i,n)=d]=n∑d∣n∑i=1n/di[gcd(i,nd)=1]=n\sum_{d|n}\su原创 2021-03-11 13:08:28 · 169 阅读 · 1 评论 -
2020ICPC 江西省大学生程序设计竞赛A Simple Math Problem 莫比乌斯反演
原题链接:https://ac.nowcoder.com/acm/contest/8827/A目录题意化简题意∑i=1n∑j=1i[gcd(i,j)=1]F[j]\sum_{i=1}^{n}\sum_{j=1}^{i}[gcd(i,j)=1]F[j]i=1∑nj=1∑i[gcd(i,j)=1]F[j]F[j]代表j各位数数字之和F[j]代表j各位数数字之和F[j]代表j各位数数字之和化简先给式子变形一下∑i=1n∑j=1i[gcd(i,j)=1]F[j]\sum_{i=1}^{n}\sum原创 2021-03-09 19:02:50 · 229 阅读 · 0 评论 -
牛客练习赛76 phi and phi 莫比乌斯反演+差分
原题链接:https://ac.nowcoder.com/acm/contest/10845/F目录题意化简Code题意ans(n)=∑i=1n∑j=1nϕ(ij)ϕ(gcd(i,j))ans(n)=\sum_{i=1}^{n}\sum_{j=1}^{n}\phi(ij)\phi(gcd(i,j))ans(n)=i=1∑nj=1∑nϕ(ij)ϕ(gcd(i,j))化简先引入一个定理ϕ(ij)=ϕ(i)ϕ(j)gcd(i,j)ϕ(gcd(i,j))\phi(ij)=\frac{\phi(i)\原创 2021-03-06 19:52:33 · 223 阅读 · 0 评论 -
牛客练习赛72 D - brz的函数 莫比乌斯反演
原题链接:https://ac.nowcoder.com/acm/contest/8282/D目录题意化简Code题意∑i=1n∑j=1nμ(ij)\sum_{i=1}^{n}\sum_{j=1}^{n}\mu(ij)i=1∑nj=1∑nμ(ij)化简=∑i=1n∑j=1nμ(i)μ(j)[gcd(i,j)=1]=\sum_{i=1}^{n}\sum_{j=1}^{n}\mu(i)\mu(j)[gcd(i,j)=1]=i=1∑nj=1∑nμ(i)μ(j)[gcd(i,j)=1]=∑i=1原创 2021-03-06 18:36:48 · 114 阅读 · 0 评论 -
P3911 最小公倍数之和 莫比乌斯反演
原题链接:https://www.luogu.com.cn/problem/P3911目录题意化简Code题意对于a1,a2,a3...an对于a1,a2,a3...an对于a1,a2,a3...an求∑i=1n∑j=1nlcm(ai,aj)求\sum_{i=1}^{n}\sum_{j=1}^{n}lcm(a_i, a_j)求i=1∑nj=1∑nlcm(ai,aj)化简我们要把ai和bj往1-n的数字上去靠,因此设一个cnti和cntj代表i和j分别出现了多少次写出式子:∑i=1N∑j原创 2021-03-06 14:50:47 · 162 阅读 · 0 评论 -
P3172 [CQOI2015]选数 莫比乌斯反演+杜教筛
原题链接:https://www.luogu.com.cn/problem/P3172目录题意化简Code题意∑a1=LR∑a2=LR..∑an=LR[gcd(a1,a2..an)=K]\sum_{a_1=L}^{R}\sum_{a_2=L}^{R}..\sum_{a_n=L}^{R}[gcd(a1,a2..an)=K]a1=L∑Ra2=L∑R..an=L∑R[gcd(a1,a2..an)=K]化简=∑a1=L/KR/K∑a2=L/KR/K..∑an=L/KR/K[gcd(a1,a2.原创 2021-03-06 14:04:02 · 126 阅读 · 0 评论 -
2019年ACM-ICPC 南京网络赛 K Sum莫比乌斯反演+杜教筛+欧拉降幂
原题链接:https://nanti.jisuanke.com/t/41302目录题意化简Code题意fn(k)=∑a1=1n∑a2=1n...∑ak=1n(gcd(a1,a2..ak))2fn(k) = \sum_{a_1=1}^{n}\sum_{a_2=1}^{n}...\sum_{a_k=1}^{n}(gcd(a1, a2..ak))^2fn(k)=a1=1∑na2=1∑n...ak=1∑n(gcd(a1,a2..ak))2求∑i=2kfn(i)求\sum_{i=2}^{k}fn(原创 2021-03-05 17:06:28 · 201 阅读 · 0 评论 -
2020杭电多校六 A Very Easy Math Problem 莫比乌斯反演
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6833目录题意化简Code题意∑a1=1n∑a2=1n...∑ax=1n(∏j=1najk)f(gcd(a1,a2...ax))gcd(a1,a2..ax)\sum_{a_1=1}^{n}\sum_{a_2=1}^{n}...\sum_{a_x=1}^{n}(\prod_{j=1}^{n}a_j^k)f(gcd(a_1,a_2...a_x))gcd(a_1,a_2..a_x)a1=1∑na2=1∑n原创 2021-03-05 12:55:27 · 141 阅读 · 0 评论 -
2019 ICPC Asia Yinchuan Regional D - Easy Problem 莫比乌斯反演 + 欧拉降幂
原题链接:https://nanti.jisuanke.com/t/42384目录题意分析Code题意给定一个序列,我们称一个序列最大公因数为d,元素个数为n,大小不超过m的序列为(n, m, k)三元组,设序列a1,a2,a3…an为q,求f(q, k)表示所有满足条件的(a1, a2, a3…an)k 之和。分析转化一下题意,列出式子∑a1=1m∑a2=1m...∑an=1m(a1a2a3...an)k[gcd(a1,a2...an)==d]\sum_{a_1=1}^{m}\sum_{a_2原创 2021-03-01 14:51:02 · 147 阅读 · 0 评论 -
2021牛客寒假算法基础集训营6 B系数 lucas定理
目录题意分析Code题意分析因为题中说明输出系数模3后的结果,我们对式子进行变形(x2+x+1)nmod3(x^2 + x + 1)^n mod 3(x2+x+1)nmod3=(x2+x−3x+1)nmod3=(x^2 +x-3x+1)^nmod3=(x2+x−3x+1)nmod3=(x2−x+1)nmod3=(x^2-x+1)^nmod3=(x2−x+1)nmod3=(x−1)2n=(x-1)^{2n}=(x−1)2n然后就是二项式的展开式(a+b)n=(nr)∗arbn−r(a+b原创 2021-02-24 21:04:40 · 169 阅读 · 0 评论 -
Codeforces Beta Round #17 D. Notepad 欧拉降幂
原题链接:http://codeforces.com/problemset/problem/17/D目录题意分析Code题意求 (b-1) * b n-1 % c,b∈[2,101000000 ],n∈[1, 101000000 ]分析非常裸的欧拉降幂根据定义可以化简n-1,特殊的b小于φ(m)的情况注意一下b直接边读入边取膜即可Code#include <bits/stdc++.h>using namespace std;//#define ACM_LOCAL#def原创 2021-02-23 14:16:16 · 129 阅读 · 0 评论 -
2021牛客寒假算法基础集训营1 H 幂塔个位数的计算 欧拉降幂
原题链接:https://ac.nowcoder.com/acm/contest/9981/H目录前置知识题意前置知识欧拉函数φ(x) 代表[1, x]之间的数中gcd(i, x)的个数定义:. 题意由于这个题n和a都是非常巨大的,因此考虑怎么去简化题中求的是个位数,所以模数mod只有10,在欧拉降幂中也只要进行三次就结束了,为了精确大于100时,我们设为100就行然后考虑怎么取a,从模数的角度出发,如果模数为2,我们只要知道个位数即可。如果模数为4,我们只要知道个位数和十位数即可,原创 2021-02-23 13:06:34 · 172 阅读 · 0 评论 -
Codeforces Round #701 (Div. 2) C. Floor and Mod 整除分块
目录题意分析Code题意给一个数对(n, m),求出在a∈[1,n],b∈[1,m]中满足⌊\lfloor⌊ab\frac{a}{b}ba⌋\rfloor⌋ = a mod b的数对有多少个分析观察样例发现当a=b+1时肯定满足,然后接着往下推当b=2时a / b = 3 / 2 … 再往后⌊\lfloor⌊ab\frac{a}{b}ba⌋\rfloor⌋ 已经大于2了,因此不可能满足当b=3时a / b = 4 / 3, 8 / 3当b=4时a / b = 5 / 4, 9 / 4原创 2021-02-13 12:44:05 · 2609 阅读 · 5 评论 -
Codeforces Round #698 (Div. 2) D. Nezzar and Board 裴蜀定理
https://codeforces.ml/contest/1478/problem/D目录题意分析Code题意黑板上有n个数,你可以任选两个数x,y,然后将2x-y写到黑板上,问k是否能被写到黑板上分析我们将2x-y拆开来看一下,x+x-y相当于x这个数加上他和y的差值,那么我们可以处理出所有的差值。但数据范围是1e5如果用n2 处理肯定超时,但我们发现如果我们求出了a1,a2和a2,a3的差值也就相当于求出了a3,a1的差值(a3-a2+a2-a1=a3-a1)因此我们只要处理出n-1个差值就原创 2021-01-29 14:57:44 · 1297 阅读 · 1 评论 -
逆序对的求解&应用
先来看一下什么是逆序对逆序对的定义设 A 为一个有 n 个数字的有序集 (n>1),其中所有数字各不相同。如果存在正整数 i, j 使得 1 ≤ i < j ≤ n 而且 A[i] > A[j],则 <A[i], A[j]> 这个有序对称为 A 的一个逆序对,也称作逆序数。简单来说,就是一个数的前面有几个比它大的数,那么这个数就有几对逆序对。接下来介绍两种求逆序对的方法 暴力的解法就不说了归并排序为什么会想到归并排序呢,首先在归并排序中,每一个分块中的数字都是单调原创 2020-05-28 18:01:13 · 2550 阅读 · 0 评论 -
牛客小白月赛25 J异或和之和 (组合数+位运算)
牛客小白月赛25 J异或和之和第一篇博客回顾一下上周的牛客小白月赛。先来看一下题目添加链接描述之前从来没有认识到逆元的重要性,直到被J题卡了快一个小时,赛后问了大佬才意识到自己犯了很严重的错误orz。先对题目分析一下,如果用一般的方法求出n的所有三元组再进行异或运算,那是必T无疑的,因此我们想到利用位运算的性质,如果三个数连续进行异或,只有两种情况会出1,分别是1 1 1之间的异或和1 0 0 之间的异或,那么我们只需要对每一位进行求组合数算出分别有几种出1的可能,然后依次相加就可以很容易得出结论原创 2020-05-21 14:53:56 · 427 阅读 · 0 评论