首页 > 其他分享 >Small GCD

Small GCD

时间:2024-03-07 21:13:10浏览次数:28  
标签:约数 cnt GCD 反演 Small 欧拉 gcd

有两种做法

第一种做法:欧拉反演(其实我赛时的时候是想到了欧拉反演的,但是我不太清楚欧拉反演的使用trick)

欧拉反演的trick见这篇文章

欧拉反演直接用在gcd上还是挺多的,可以想一下\(cnt\)数组怎么求

\(cnt\)数组其实是只用记一维的(因为记两维肯定爆炸了)。考虑对于\(d\),如果\(d\)不是\(a_i\)的约数,那么\(d\)在\(i\)的\(cnt\)和\(d\)在\(i-1\)的\(cnt\)肯定是一样的;如果\(d\)是\(a_i\)的约数,那么\(d\)在\(i\)的\(cnt\)就多了\(1\)

第二种做法:考虑贡献

见这篇文章

由于这道题目给的序列是离散的,我们没办法利用欧拉函数,所以考虑贡献的时候只能求出前面有多少个\(a_i\)满足gcd是\(x\),那么\(x\)肯定是\(a_i\)的约数,但是这样的\(a_i\)与\(a_j\)的gcd却不一定是\(x\),但是我们有结论,公约数一定是gcd的约数,所以我们用容斥减去更大\(g\)就好了

标签:约数,cnt,GCD,反演,Small,欧拉,gcd
From: https://www.cnblogs.com/dingxingdi/p/18059758

相关文章

  • lcm(a,b)=a*b/gcd(a,b)
    求俩组爆int的数据的最小公倍数lcm等价于求这俩个数的最大公因数gcd即lcm(a,b)=a*b/gcd(a,b)求俩组爆int数据的最大公因数可以使用辗转相除法`include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;llgcd(llda,llxiao){inttemp;while(xiao!=0){temp......
  • I recommend a very small Linux, it is Watt OS version 13
    Dearall,MyfirsttimeusingLinuxWattOSversion12,itisverynice. Superfast!However,fornewusers,youneedthesecommandtostart:sudopasswdsudodate--setmm/dd/yyyysudoaptinstallgdebiItisworthytostudythesecommandline,because......
  • 「UR#2」树上 GCD
    题目链接。讲的是一个较劣的做法。先转换成求\(\gcd\)为\(d\)倍数的种数。考虑无脑上根号分治。设阈值为\(B\),我们对不超过\(B\)的\(d\)暴力求。怎么求呢?我们有一个十分巧妙的方法,记录每个点子树与它距离为\(d\)的倍数的节点数,这样直接树上乱做一下就可以了,答案也是......
  • GCD,乘法逆元
    最大公约数公约数:几个整数共有的约数。($\pm1是任何整数的公约数$)最大公约数:显而易见,所有公约数中最大的那个。欧几里得算法为了求最大公约数(常记为GCD),我们常用欧几里得算法。以两个数的最大公约数为例。设正整数a,b。不妨假设\(a>b\)。\[gcd(a,b)=gcd(b,a\mod\b)\]证明......
  • [ARC162D] Smallest Vertices 题解
    题目链接点击打开链接题目解法这种树的形态计数题首先可以想到\(prufer\)序列计数,如果没有任何限制,那么方案数为\(\prod\frac{(n-2)!}{deg_i}\),其中\(deg_1=d_1-1,deg_i=d_i(2\lei\len)\)对于每个点分开求贡献考虑这个式子只和点的个数和子树内的\(\sumdeg\)有关......
  • G - Smaller Sum
    G-SmallerSumProblemStatementYouaregivenasequence$A=(A_1,A_2,\dots,A_N)$oflength$N$.Answerthefollowing$Q$queries.The$i$-thqueryisasfollows:Findthesumoftheelementsamong$A_{L_i},A_{L_i+1},\dots,A_{R_i}$thatarenotgreate......
  • ABC339_g Smaller Sum 题解
    题目链接:Atcoder或者洛谷比价朴素的题,首先有暴力的想法就是树套树或者分块。这两种就不再赘述,这里来正式提提主xi树(应该不能打出来这玩意)的本质而不再停留在板题找第\(k\)大上。对于可差性问题和传统问题不同,我们对于可差性问题往往都有更好的优化方案。例如对于树类问......
  • 修塔(gcd+裴蜀定理)
    第3题   修塔查看测评数据信息有编号1~n的n个塔,除了两个塔a和b是好的不用修以外,其他都需要重修。james和jordan展开修塔比赛,规则是轮流修,每次可以修第j+k或j-k号塔,其中j和k是已经修好的任意两个塔,如果不能修塔,就输了。给出n,a,b,从james开始,问最后谁赢了。 输入......
  • 伪随机数(gcd+裴蜀定理)
    第2题   伪随机数查看测评数据信息一个生成伪随机数的函数,seed(a+1)=[seed(a)+STEP]%MOD,为了能产生0~MOD-1的所有数,需要设定合适的STEP和MOD。例如,STEP=3,MOD=5,产生0,3,1,4,2,这是正确的设定;若STEP=15,MOD=20,只能产生0,15,10,5,这是错误的设定。 输入格式 ......
  • gcd & exgcd
    gcd&exgcdgcd设\(a=bk+c\),显然有\(c=a\bmodb\)。设\(d\mida,~d\midb\),则\(c=a-bk,\frac{c}{d}=\frac{a}{d}-\frac{b}{d}k\)。由右边的式子可知\(\frac{c}{d}\)为整数,即\(d\midc\),所以对于\(a,b\)的公约数,它也会是\(b,a\bmodb\)的公约数。反过来也需要证......