数论
数论
_hunxuewangzi
这个作者很懒,什么都没留下…
展开
-
CSUST 4012 我也不知道会不会防A题解(逆元)
题目链接题目大意题目思路这个题目的思路就是如果你求出a的逆元是b,那么你要求b的逆元的话,就直接是a了。所以你只要求出前n\sqrt nn左右的数。代码#include<set>#include<map>#include<queue>#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<string>原创 2020-09-04 15:10:19 · 149 阅读 · 0 评论 -
CSUST 4000 你真的会数据结构吗?题解(暴力+质因子分解)
题目链接题目大意题目思路感觉这个题目不是很难啊qwq,a[i]最多只有30,对应10个素因子,那么就可以考虑暴力qwq然后题目的f(n)代表了2cnt2^cnt2cnt,cnt代表d的素因子个数(显然)每次查询只要查询30次就行了,因为儿子只有最多30个不同的值代码#include<set>#include<map>#include<queue>#include<stack>#include<cmath>#include原创 2020-08-16 23:50:14 · 177 阅读 · 0 评论 -
整除分块讲解
引入一般一个算法的引入都是为了解决一类问题,那么这个问题是什么呢?求解∑i=1i=nn/i\sum_{i=1}^{i=n}n/i∑i=1i=nn/i式子很简单,可以直接O(n)O(n)O(n)求但是如果n为1e9甚至1e14呢,这个时候就要引入整除分块的概念其实我个人认为这个算法不能算是一种高深算法,不要掌握什么其他知识就能学,就类似于贪心算法首先我们可以先写一个暴力算法(任何算法几乎都是暴力引申的)n=20; for(int i=1;i<=n;i++){ pri原创 2020-08-14 19:56:48 · 394 阅读 · 0 评论 -
容斥定理入门
定义在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 (没锤子用 )讲解最基础开始:设P1和P2是两个性质(例如“被6整除”)。我们想统计既不具有P1 也不具有P2性质的物体的个数。可以先排除掉具有P1的物体个数,然后再排除掉具有P2的物体个数,由于同时具有两种性质的物体被排原创 2020-08-05 21:33:43 · 571 阅读 · 0 评论 -
错排讲解
定义一个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种?推导显然数字小可以枚举如:dp[1]=0,dp[2]=1;对于排列数较多的情况,难以采用枚举法。这时可以用递归思想推导错排数的递回关系式。当n>=3时不妨设n排在了第k位,其中k≠n,也就是 。那么考虑第n位的情况。当k排在第n位时,除了n和k以外还有n-2个数,其错排数为dp[n-2]。当k不排在第n位时,那么将第n位重新考虑成一个新的“第k位”,这时的包括k在内的剩下n-1个数的每原创 2020-08-05 16:33:56 · 221 阅读 · 0 评论 -
2018 AICCSA Programming Contest C - Function 题解(杨辉三角)
题目链接题目大意dp[l][r]=dp[l+1][r]+dp[l][r−1]+pre[r]−pre[l−1],dp[i][i]=a[i],要你求dp[1][n]dp[l][r]=dp[l+1][r]+dp[l][r-1]+pre[r]-pre[l-1],dp[i][i]=a[i],要你求dp[1][n]dp[l][r]=dp[l+1][r]+dp[l][r−1]+pre[r]−pre[l−1],dp[i][i]=a[i],要你求dp[1][n]题目思路如果这个题目数据范围小的话,那么显然数区间dp,原创 2020-08-04 19:57:21 · 225 阅读 · 0 评论 -
codeforces 938E MaxHistory 题解(概率or组合数学)
题目链接题目大意给你n个数字,求所有排列的fa的和:对于一个排列来说,一开始fa为1,m=1,若a[m]<a[i] fa=fa+a[m]。m=i概率看到这个方法觉得很神奇,但又确实高中的时候一些组合数学的题目的确可以用概率的方法来解。而且简单很多。首先sort一下,然后计算大于等于a[i]的个数x(包括自己),如果要保证a[i]被算进贡献,那么就必须在这个排列中,所有大于等于a[i]的个数中,a[i]在序列最前端,即第一个位置,显然概率就是1/x,然后有n!种方案。然后就可以求出答案代码#原创 2020-07-21 20:51:18 · 134 阅读 · 0 评论 -
HDU hannnnah_j’s Biological Test 题解(排列组合)
题目链接题目大意一个圆桌上有n个不同的位置,m个相同的人安排到这n个位置上,要求两个相邻的人至少相距k个位置。求方案数,对1e9+7取模。题目思路emmm。看了好多题解都有一种似懂非懂的感觉qwq。因为一个人坐下之后,后面的k个位置一定不能做人。所以可以把一个人和他旁边的k个位置打包看成一个整体。那么只剩下n - m(k+1)个空位。可以看作n-m(k+1)个球放入m个盒子中。假设计算n个球放入m个盒子的方案数。采用隔板法, 因为每个盒子里不一定要非空。答案就是C(n+m-1, m-1) ;代原创 2020-07-21 10:39:51 · 174 阅读 · 0 评论 -
组合数学基础知识回顾
1:x1+x2+x3+......xk=rx_{1}+x_{2}+x_{3}+......x_{k}=rx1+x2+x3+......xk=r的正整数解的个数这个题目运用隔板法,r里面有r-1个孔隙,插入k-1个隔板,则可以分为k部分,那么答案就Cr−1k−1C_{r-1}^{k-1}Cr−1k−1但如果题目要求的是x1+x2+x3+......xk=rx_{1}+x_{2}+x_{3}+......x_{k}=rx1+x2+x3+......xk=r的非负整数解的个数呢。显然一个空隙原创 2020-07-20 11:40:20 · 216 阅读 · 0 评论 -
中国剩余定理模板题
题目链接前言这个题目主要我为了了解中国剩余定理而写的,其实学完之后发现没那么难,本来想自己写一篇博客总结一下,但是感觉百度百科和一篇洛谷博主的博客实在太好基本没有什么可写的,大家看这两个应该就懂了,我就直接上个自己的代码了百度百科洛谷博客代码#include<set>#include<map>#include<stack>#include<cmath>#include<cstdio>#include<vector>原创 2020-07-17 21:07:59 · 159 阅读 · 1 评论 -
hdu 6286 2018 题解(容斥)
题目链接题目大意在区间[a,b]中找一个x,在区间[c,d]中找一个y,问有多少对(x,y)满足x*y是2018的倍数题目思路这个题目的关键就是要发现2018只有两个质因子就是2和1009,感觉是挺简单的一个容斥题目,但是如果不往这个方面去想就不知道该这么写然后在区间[a,b]设x1为有多少个因子是2且不是2018的数,x2为有多少个因子是1009且不是2018的数,x3为有多少个因子是2018的数在区间[c,d]设y1为有多少个因子是2且不是2018的数,y2为有多少个因子是1009且不是20原创 2020-07-16 19:31:53 · 136 阅读 · 0 评论 -
Codeforces Round #630 (Div. 2) E. Height All the Same 题解(思维+二项式定理)
题目链接题目大意给定n*m的矩阵,每一个a[i][j]代表(i,j)的高度。你可以执行两种操作:1.给任意一个a[i][j]加上2.2.给两个相邻的格子都加1.现在给出n,m,l,r,问你n * m的矩阵,每个格点的初始值是[l,r]中的任意一个,问有多少种初始值,可以使得经过上面的2种操作,所有格点的值相同。题目思路1:首先要明白这个矩阵能否最后相同,肯定是只与奇偶性有关。.因为操作1不改变奇偶性,而同奇偶性的数一定可以通过操作1变成相等的数,所以对于一个n∗m的方格,只考虑其奇偶性,问题可原创 2020-07-15 16:41:14 · 178 阅读 · 0 评论 -
Educational Codeforces Round 81 (Rated for Div. 2) D. Same GCDs 题解(欧拉函数)
题目链接题目大意给两个整数a,m(1≤a<m≤1010)a,m (1≤a<m≤10^{10})a,m(1≤a<m≤1010)有多少个xxx满足 0≤x<m,gcd(a,m)=gcd(a+x,m),0≤x<m0≤x<m ,gcd(a,m)=gcd(a+x,m) ,0≤x<m0≤x<m,gcd(a,m)=gcd(a+x,m),0≤x<m题目思路emmm,看到这个题目完全没思路啊,但是仔细分析就能发现解法,首先观察数据0<=x<m0<原创 2020-07-14 19:24:59 · 184 阅读 · 0 评论 -
Codeforces Round #631 (Div. 2) D. Dreamoon Likes Sequences 题目链接(位运算+组合数学)
题目链接题目大意给你d和m,构造一个数组a,使得a严格递增,使数组b(b1=a1,∀i>1,bi=bi−1⊕aib_1=a_1, ∀i>1,b_i=b_{i−1}⊕aib1=a1,∀i>1,bi=bi−1⊕ai)递增,问你构成a有几种可能,答案模上m题目思路这个题目主要是有两个关键点,一个要明白aia_iai化为2进制1的最高位一定比ai−1a_{i-1}ai−1高,还有就是组合数学的计算要理清,标称很好的解释了就不多说了代码#include<set>原创 2020-07-14 16:25:17 · 216 阅读 · 1 评论 -
2020牛客暑期多校训练营(第一场)Easy Integration 题解(分部积分)
题目链接题目大意输入n(n<=1e6)要你求∫01\int_0^1∫01 (x−x2)n(x-x^2)^n(x−x2)n要用分部积分法(然而我早忘了代码#include<set>#include<map>#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<string>#include<cst原创 2020-07-14 09:28:44 · 318 阅读 · 0 评论 -
Codeforces Round #632 (Div. 2) F. Kate and imperfection 题解(gcd+埃式筛)
题目链接题目大意在1~n的n个数中,对于k∈[2,n],在n个数中取k个数,对这k个数两两进行gcd,输出这个gcd最大的最小值。题目思路我们考虑如何构造两两间最大公因数的最大值最小的集合,首先肯定是把所有质数先丢进集合里,然后再把与已经在集合内的数的最大公因数 2 的数丢进去,然后是 3 的数……然后注意到,如果我们加入了一个合数,那么他的所有因子必定已经在集合内了,于是加入的这个数字能够产生的最大公因数就是他的最大因子,因此用类似于埃筛维护这个贪心的过程,排序一遍输出即可。代码#includ原创 2020-07-13 20:12:59 · 197 阅读 · 0 评论 -
Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math题解(lcm)
题目链接题目思路给你一个正整数n,让你找到两个正整数使得a+b=n,且lcm(a,b)最小题目思路比赛中写出来了,但是是我感觉出来的,看了一下标称,可以严格证明出来,这个题目还是值得学习的代码#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include<al原创 2020-07-12 09:24:06 · 326 阅读 · 0 评论 -
欧拉函数入门
定义在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目公式φ(x)=x∏i=1N(1−1pi)\prod_{i=1}^N{(1-\frac{1}{p_i})}∏i=1N(1−pi1) (其中p1, p2……pn为x的所有质因数)证明我觉得网上许多博客的证明不太严谨,我严格证明一下首先明白两个性质1:当n=pkp^kpk (且p是质数的情况下) φ(n)=pkp^kpk- pk−1p^{k-1}pk−1因为显然n的质因子只有一个就是p,那么1-n中不和他互素的就是因原创 2020-07-11 15:24:07 · 419 阅读 · 1 评论 -
Codeforces Round #511 (Div. 2) C. Enlarge GCD 题解(质因数分解logn)
题目链接题目大意删去最少的数,使gcd变大题目思路这个题目写了我好久,学到了新知识,质因数分解可以logn分解,以前一直以为是n\sqrt{n}n,可以直接用素数筛,筛出所有合数的最小质因子,然后就直接logn分解了,其他的不是很难,就是简单的分解就行了代码#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<cstring>#inclu原创 2020-07-10 22:05:57 · 332 阅读 · 0 评论 -
Educational Codeforces Round 85 (Rated for Div. 2) E. Divisor Paths 题解(数论+思维)
题目链接题目大意给你一个整数D,有一个无向图,图的节点为 D 的因子,若 x % y == 0 && x / y 是一个质数,则节点 x 和 y 有一条无向边,边权为 是 x 的因子但不是 y 的因子的数的个数。有 q 次询问,每次询问输入两个节点 x、y 问节点 x 到节点 y 边权最小的路径有多少条,输出答案对 998244353 取模后的结果。1 <= D <= 10^15; 1 <= q <= 3*10^5 ; 1 <= x,y <= D原创 2020-07-10 15:29:32 · 199 阅读 · 0 评论 -
Educational Codeforces Round 89 (Rated for Div. 2) D. Two Divisors(数论)
题目链接题目大意让你找出x的两个因子d1>1,d2>1使得gcd(d1+d2,x)=1题目思路首先要明白gcd的性质gcd(a,b)=gca(a+b,b)if(gcd(a,c)==1) gcd(a,bc)=gcd(a,b)则推出当x与y互质gcd(x+y,x*y)=1那么就简单了,直接唯一分解x=p1^ t1 p2^ t2 p3^ t3…令d1=p1^t1 ,d2=x/d1即可注意唯一分解定理要先欧拉筛,不然会TLE,然后其实可以直接欧拉筛的时候预处理他的最小质因子即原创 2020-06-12 22:28:10 · 157 阅读 · 0 评论 -
Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems 题解(二分)
题目链接题目大意三个数组,每个数组中挑出来一个数,求 (x−y)^ 2 + (x−z)^ 2+(y−z)^2的最小值。题目思路暴力是o(n^3)肯定会爆,但是显然这个答案要使得这三个值最接近。枚举中间值,然后二分寻找比他大的最小值和比他小的最大值即可代码#include<bits/stdc++.h>using namespace std;typedef long long ll;int t,n1,n2,n3;ll cal(ll x,ll y,ll z){ retur原创 2020-06-04 17:16:53 · 180 阅读 · 0 评论 -
Educational Codeforces Round 88 (Rated for Div. 2) E Modular Stability 题解(组合数学+逆元+取模)
题目链接题目大意让你设计出长为k,且1<=a[i]<=n,且数组严格单调上升。使任意正整数x使其以任意顺序mod数组的所有元素值都相等题目思路感觉比较好想,当a1为一个数d,其他数都为d的倍数的时候,无论怎么交换,答案都是n%d.注意求inv的时候没必要每一个都求逆元,可以求一个,然后其他的递推代码#include<cstdio>#include<algorithm>using namespace std;const int maxn=5e5+5,mo原创 2020-05-29 15:40:29 · 303 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2) C. Orac and LCM 题解(质因数分解+快速幂)
题目链接题目思路emm,感觉和hdw学长的题目极其类似,但是自己还是没想出来,其实就是分解一下,然后找次小。因为 lcm的每个质因子的指数是这两个数的指数的max,然后lcm的gcd的指数是lcm里面指数的min注意:我本来是外层枚举a[i],内层枚举质数,但是我发现这样根本不好break,会tle。外层枚举质数,内层枚举a[i]即可break代码#include<cstdio>#include<cmath>#include<cstring>#incl原创 2020-05-13 10:41:02 · 397 阅读 · 0 评论 -
Codeforces Round #589 (Div. 2) C. Primes and Multiplication(数学)
题目链接题目大意就是n!对x的每一个质因数进行一次“类似分解的操作” 然后乘起来mod(1e9+7)题目思路显然是要对x进行质因数分解,我看很多博主就用了质数筛筛了质数,其实没必要,自己直接分解得到也一定是质数(显然的)。注意最后剩余的那个可能也是质数,要判断一下。然后再随便搞一下,用个快速幂就行了,不难。代码#include<vector>#include<cst...原创 2020-05-07 10:08:10 · 132 阅读 · 0 评论 -
codeforces 1284C New Year and Permutation 题解(组合数学)
题目链接题目大意就是给你一个n,求n的所有排列里区间左右端点的差等于区间内极差的区间的和题目大意本来想打个表找规律的结果没找出,我怎么这么菜qwq,其实就是简单的组合数学我们会发现其实满足这个条件的区间内的数一定是连续的。所以我们从区间长度入手,对于每个长度的区间看对应了多少个排列满足要求。这就很简单了呀。我们枚举区间的极差i,考虑选差值为i的i+1个数有n-i种选法,区间内的顺序随...原创 2020-05-01 08:52:47 · 215 阅读 · 0 评论 -
CF1342C Yet Another Counting Problem
题目链接题目大意给定两个数字a,b,有q次询问,每次询问给出两个数字 l , r, 求 l 到 r 的范围内有多少数x使得 x % a % b != x % b % a题目思路emm。自己太蠢了qwq。其实仔细观察会发现a,b给你的范围那么小,肯定有用,仔细想想会发现肯定在lcm(a,b)里面有循环节。然后用个前缀和就行了。代码#include<cstdio>#inclu...原创 2020-04-29 19:16:50 · 146 阅读 · 0 评论 -
POJ 3150 Cellular Automaton 题解(循环矩阵+矩阵快速幂)
题目链接题目大意给定一个n格的环,现在有个距离d,每次变化把环和他周围距离d以内的格子相加,结果mod m,问经过k次变换之后,环上的各个数字题目思路前置知识循环矩阵它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。图片如下性质循环矩阵遵循代数运算法则。对于两个循环矩阵 A 与 B 来说,A + B 也是循环矩阵。AB 也是循环矩阵,并且 AB=BA。正文很...原创 2020-04-23 23:36:35 · 210 阅读 · 0 评论 -
POJ 3734 Blocks 题解(矩阵快速幂or组合数学+快速幂)
题目链接题目大意有一排砖。数量为N。现要将砖所有染上色。有红、蓝、绿、黄四种颜色。要求被染成红色和绿色的砖块数量必须为偶数,问一共同拥有多少种染色方案。(因为答案较大。模10007)矩阵快速幂思路//白书202面组合数学思路emm感觉这个组合数学有点硬核前置知识C(n,0)+C(n,1)+…+C(n,n)=2^n证明方法1:观察这个公式,实际上我们可以理解成一个分类加法计数...原创 2020-04-23 17:41:01 · 217 阅读 · 0 评论 -
POJ 3735 Training little cats 题解(矩阵快速幂)
题目链接题目大意给了n,m,k分别代表有几只猫,同样的一套动作要做m次,这套动作有k个有n只猫,给每只猫放食物:g i 代表给第i只猫加一块食物e i 代表第i只猫吃完自己的所有食物s i j 代表第i只猫,与第j只猫的食物互换问这一套动作,做m次,每个猫有多少食物注:多组输入题目思路看到m这么多次比较容易想到矩阵快速幂,但是自己没写过类似的,构造有点困难。思考如何实现加1,...原创 2020-04-22 21:46:22 · 182 阅读 · 0 评论 -
矩阵快速幂
模板题题目思路矩阵快速幂我觉得和快速幂没什么不同,只不过乘法的方式变了而已。代码写起来麻烦一点而已代码#include<cstdio>#include<vector>using namespace std;typedef long long ll;const int maxn=1e2+10,mod=1e9+7;ll n,k,base[maxn][maxn]...原创 2020-04-22 16:32:07 · 97 阅读 · 0 评论 -
快速幂与快速乘
如果要计算a^b%mod且mod<=1e9,那么直接快速幂即可。但是如果mod<=1e18呢,你会发现两个1e18相乘会爆,那么就需要快速乘(其实我觉得__int128应该是可以的)快速乘有什么用呢,如果要求x*y%mod而mod为1e18显然会爆long long,但是你会发现其实x乘以y不就是y个x相加嘛(小学数学其实也就是和快速幂类似的做法。下面贴一个a^b%mod mod...原创 2020-04-22 11:17:04 · 133 阅读 · 0 评论 -
牛客 每日一题 10 树 题解(dp or 组合数学)
题目链接题目大意需要你将一棵树分成若干个连通块,连通块上的颜色相同,不同连通块之间的颜色不同。题目思路前言emmm,感觉题目理解还是比较容易,自己没做过类似的题,看完题解应该也不算太难吧。其实只要前面两个输入就行了正文方法一时间复杂度O(nk)在树中选择任意一个叶子结点作为起点,沿着边一个点接一个点的涂色。定义dp[i][j]为前i个点使用了j种颜色的方案数,状态转移方程:若第...原创 2020-04-15 11:28:36 · 284 阅读 · 0 评论 -
牛客小白月赛23 B 阶乘题解(二分+质因数分解)
题目链接题目大意给定一个正整数p,求一个最小的正整数 n,使得 n! 是 p 的倍数题目思路1看到此题还是会想到质因数分解,但是没想到是需要p和n!都要质因数分解。可以把p分解的因子和次数用一个pair储存。然后可以发现其实这个题目是满足二分条件的。注意n质因数分解时那个变量j要设为long long 。因为可能会爆int,有关i,j在for循环里面是乘法操作的一定要注意很容易wa代...原创 2020-03-31 17:33:23 · 641 阅读 · 0 评论 -
周赛 种花 题解(数论)
题目链接题目大意n个人种花(环),给出每个人种花数量的可能区间,如果相邻两人种花数量的乘积为p的倍数,则两人各获得1000元,求所有人工资的期望值。如果答案是a/b 则写成a*inv[b]题目思路1:如何判断[L,R]中间有多少个p的倍数,不是很容易想但是仔细想想还是可以知道其实就是R/p-(L-1)/p2:这个题目没必要一次求出最终概率,用最小公倍数等等操作,直接逆元求解即可3:n...原创 2020-03-30 18:42:53 · 196 阅读 · 0 评论 -
牛客 算概率 题解+周赛 pph的篮球考试 题解(概率dp)
前言:这两个题目基本类似就直接放在一篇博客知识(a/b)%p=(ainv[b])%p; =》 (a1/b1+a2/b2)%p=(a1inv[b1]+a2*inv[b2])%p算概率题目描述代码#include<cstdio>using namespace std;const int mod=1e9+7;const int maxn=2e3+5;int n,a[...原创 2020-03-30 15:49:59 · 292 阅读 · 0 评论 -
AtCoder Beginner Contest 158 E Divisible Substring 题解(思维+取余)
题目链接题目大意给一个字符串(由数字‘0’~‘9’组成),一个素数p,问有多少个非空的连续子串是p的倍数题目思路此题感觉比较神仙吧,第一次见这种题目,以后要多积累看到题目中余数是质数就是仔细想想和取余有关的问题abcd % p = ( a * 1000 % p + b * 100 % p + c * 10 % p + d * 1 % p ) % p那么考虑从后往前算余数,并且记录余数...原创 2020-03-23 23:38:14 · 260 阅读 · 0 评论 -
拓展欧几里得讲解
前记说拓展欧几里得前先说欧几里得。欧几里得其实就是求a,b得最大公约数。代码如下,代码简单,不做解释。int gcd(int a,int b){ if(b==0) return a; return (b,a%b);}正题现在我们知道了 a 和 b 的最大公约数是 gcd ,那么,我们一定能够找到这样的 x 和 y ,使得: ax + by = gcd 这是一个不定方程...原创 2020-03-09 15:47:56 · 226 阅读 · 0 评论 -
洛谷 P2158 [SDOI2008]仪仗队 题解(数论)
题目链接解题方法1 首先对于这种,有关一次函数的题目,一定要想到求最大公约数,仔细观察会发现,以C君为0点建立坐标系,只要gcd(x,y)>1,就不能被看见因为前面肯定被挡住了,例如(3,6)前面肯定有(1,2)被挡住了。2首先明白了这一点,但是此题的数据有40000*40000个点,显然会炸。有大佬用欧拉公式解决,但是我实在看不懂,也不想看,什么时候学了欧拉公式再来补坑。用的是类...原创 2020-02-19 17:01:23 · 304 阅读 · 0 评论 -
洛谷 P3811 【模板】乘法逆元 题解(逆元递归法)+ 周赛 他们说要我出一道签到题(组合数+卡特兰数)
题目链接题目思路显然是求逆元,但是直接求所有的逆元,用扩偶显然会tle,这个时候就需要0(n)的时间度算法注意最后的递推式为(p-p/i)加上p不会对答案有影响,而且防止负数。代码#include<cstdio>using namespace std;const int maxn=3e6+5;int n,p;long long inv[maxn];int main...原创 2020-03-11 17:55:59 · 291 阅读 · 1 评论