算法提高课
Benqwq_ac
这个作者很懒,什么都没留下…
展开
-
方程的解
题目传送门 xxx^xxx我们可以通过快速幂来求出 问题在于如何求出a1+a2+...+ak=g(x)a_1+a_2+...+a_k=g(x)a1+a2+...+ak=g(x) 对于样列 a1+a2+a3=4a_1+a_2+a_3=4a1+a2+a3=4 我们假设有4个小球 O O O O,我们从中间插入两块板子,那么小球会被分成三堆 O | O O | O 那么每堆的数量就是一个解,其板子不同的放法对应不同的解,那么问题就变成了C32C^2_3C32 所以我们只需要求出从n-1个缝隙中插入k原创 2021-03-03 21:09:35 · 116 阅读 · 1 评论 -
青蛙的约会
题目传送门 假设两只青蛙能碰面,且最少跳跃次数为t 则有式子tm+x≡tn+y(modL)tm+x \equiv tn+y \pmod{L}tm+x≡tn+y(modL) 就是青蛙A和青蛙B经过k次跳跃的距离加上初始距离摸上L相等 式子又可以化为tm+x+k1L=tn+y+k2Ltm+x+k_1L = tn+y+k_2Ltm+x+k1L=tn+y+k2L 化简为t(m−n)+(k1−k2)L=y−xt(m-n)+(k_1-k_2)L=y-xt(m−n)+(k1−k2)L=y−x 其中m-n和L和y-原创 2021-02-08 11:35:25 · 98 阅读 · 0 评论 -
最大公约数
题目传送门 题目意思是x和y的最大公约数是素数,假设有一个素数P 即k1∗p=xk1*p=xk1∗p=x k2∗p=yk2*p=yk2∗p=y 我们可以看到当要使x和y的最大公约数是p,那么k1和k2必须是互质的。 那么我们可以枚举1-n的所有质数,对于每个质数p,它的最大系数为n/p,那么对于1~n/p中与n/p的互质的个数即是解 那么对于n/p-1,1~n/p-1中与n/p-1互质的个数也是解,以此类推 互质的个数可以用欧拉函数求,2~n/p欧拉函数的和可以用前缀和来求 #include<bit原创 2021-02-07 19:19:21 · 122 阅读 · 0 评论 -
樱花
题目传送门 首先对于1x+1y=1n!\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}x1+y1=n!1 x和y必然有一个数是大于n!的,那么我们可以假设y是大于n!的,那么式子可以化为 1x+1n!+k=1n!\frac{1}{x}+\frac{1}{n!+k}=\frac{1}{n!}x1+n!+k1=n!1 化简后为x=n!2k+n!x=\frac{n!^2}{k}+n!x=kn!2+n! 由上式子可以看出当x为正整数时,k必须要整除n!2n!^2n!2,即n!原创 2021-02-07 12:45:04 · 96 阅读 · 0 评论