随笔分类 - 数论
摘要:思路: 化简后得到(a+b)c=ab,设g=(a,b),A=a/g,B=b/g,则g(A+B)c=ABg^2,即(A+B)c=ABg 由题目已知条件:(a,b,c)=1,即(g,c)=1,g|(A+B)c,故g|(A+B), 设(A+B)/g=AB/c= k ∈ Z, 若k>1,因为A,B互质,所以
阅读全文
摘要:我来解释一下后一步咋来的,就是把Ci/p提出去,然后类似整数分块,每次往下分都会算一部分,预处理杨辉三角前缀和,我看的洛谷第二个题解。 题干: 代码:
阅读全文
摘要:这个是一个处理积极性函数前缀和的东西,先把能处理的范围的函数值处理出来,然后数论分块,递归处理这些值,一点点缩小这个的范围,从而计算出函数值。 具体看代码就行了,不是很难。 洛谷的模板题是处理μ和φ的前缀和。 代码:
阅读全文
摘要:对于这种与gcd有关的莫比乌斯反演,一般我们都是套路的去设f(d)为gcd(i,j)=d的个数,F(n)为gcd(i,j)=d和d的倍数的个数,然后用莫比乌斯反演,然后整出一个可以整数分块的东西. 等我学完latex再发式子,详情可见luogu题解. 题干: 代码:
阅读全文
摘要:机房的人都嘲笑我博客只有两句话,我今天就要打他们的脸!!!我今天写一下FFT这个神奇的算法.首先,我们需要知道,FFT好像就是用来处理两个多项式乘积的,没有多么高端.首先思考暴力,就是暴力把n个数带入求值,然后相乘,复杂度O(n^2).我们考虑分治,分治奇偶,把奇数提出来,再进行分治.先放一个递归的
阅读全文
摘要:这个题就是把三个数论基础合在了一起,算是一道比较全面的题. 1的时候就是快速幂 2的时候是exgcd求逆元,特殊的,只有两数互质才有逆元. 3就是bsgs啦,还是不太熟 题干: 代码:
阅读全文
摘要:原根就是一种数论的定义,详情请见ssy的博客.我这里主要讲的是poj的1284. poj这道题要求的是一个数的原根有多少个,我一开始自己瞎做把所有原根都求出来了,代码如下: 但是这样会T,百度了一下,发现一个性质,就是一个数的原根个数就是phi[phi[n]],而此题n是素数,phi[n]=n -
阅读全文
摘要:BSGS是一种解决一类专门的问题的解法,主要是解决已知A, B, C,求X使得A^x = B (mod p)这一类问题。 解法很简单,先设x = i*m-j(m=ceil(sqrt(p))),然后进行变形,得到ai*m = b*aj (mod p)。 先枚举j (范围0-m) ,将 b*aj 存入h
阅读全文
摘要:这个题虽然很简单,但是有一个比较坑的地方,就是gcd不一定是1,有可能是别的数。所以不能return 1,而是return a; 题干: 代码:
阅读全文
摘要:欧拉函数裸题,直接欧拉函数值乘二加一就行了。具体证明略,反正很简单。 题干: Description A lattice point (x, y) in the first quadrant (x and y are integers greater than or equal to 0), oth
阅读全文
摘要:很基础的东西,但是不能马虎,有3种方法,下面一一列举。 一.线性求逆元 二.费马小定理求逆元 三.exgcd求逆元
阅读全文
摘要:这个题一看就是nim游戏的变形。每次先手取出巧克力就是新建一个nim,但假如先手取一个为0的而且无论后手怎么取剩下的都无法为零就行了。然后用dfs跑。 题干: 代码:
阅读全文
摘要:其实就是一道很简单的栈,只要明白什么情况会被挡住就行了。假如斜率一样则下面的被挡住,假如不一样就算交点,看那个交点在上面就行了。 题干: 代码:
阅读全文
摘要:有理数取余其实不是一个单独的东西,其实就是一个费马小定理的应用,但是这个题的数据范围对于不用快读的人有点不友好,我看一个哥们用快读调了3天,然而我20分钟就做完了。 关于读入,就直接在快读中加入一个取模就行了。然后直接费马小定理,但一开始忘了无解的情况,假如b为0就是分母为0,无解。 题干: 代码:
阅读全文
摘要:这是洛谷一个比赛中的一道题,和去年NOIP D1T1挺像。我看了一眼之后想“这不是小学奥数吗?求一个数字和就好了呀”。。。然后,60,剩下T了,gg。 只好看正解,但是一脸懵逼???然后看了证明,c**,竟然是先转换然后等差数列求和,说白了又是一道猜结论的题。。。我太菜了。 题干: 60分 AC代码
阅读全文
摘要:这个题是一个卡特兰数的裸题,为什么呢?因为可以通过划分来导出递推式从而判断是卡特兰数,然后直接上公式就行了。卡特兰数的公式见链接。 https://www.luogu.org/problemnew/solution/P2532 代码实现不难,就是一个高精乘|除低精。 题干: 题目描述 输入输出格式
阅读全文
摘要:矩阵快速幂是一个快速幂的延伸,但实际上区别不大,主要思想是一样的. 题干: 代码:
阅读全文
摘要:三分是一种求函数的最高点的算法,好像很好做?核心思想就是每次取中点左边一点的值和右边一点的值,判断左右的函数值哪个大,然后舍掉较小的区间就行了. 我才知道这是二分求导... 题干: 代码:
阅读全文
摘要:2-sat问题主要解决的是一类二取一的问题.做法就是先建图,然后跑tarjan,然后就判断正负是否冲突,假如有冲突,就说明无解,否则就判断哪个的序号大...话说我也不知道为什么序号大就代表1. 题干: 题解:
阅读全文
摘要:裴蜀定理其实不是一种特殊的算法,他就是一个定理,来证明ax + by | gcd(x,y) 其实这个定理正确性显然,但是这个板子其实看不出来和这个定理有什么关系,这就很慌. 但是仔细一想,其实就是求出来这些数的gcd就行了,但是负数要变成正数. 题干: 代码:
阅读全文

浙公网安备 33010602011771号