把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

数学相关Alex_Wei

O(1) 在线逆元

模板题

大概就找个乐子。

我们发现,我们如果能找到一个 a,使得 axmodp[O(p23),O(p23)] 里面,那么预处理这一部分逆元就行。

考虑将 x 拆成 qB+r,其中 B=q13r 是其 modB 的模数。

我们发现,如果 aB,则 arB2,可以接受。因此我们只需要让 B2aqBB2

aqB=v,考虑所有的 (a,v) 二元组,其中 aB,B2vB2,我们希望证明在这个限制下对于每个 q 都有解。我们考虑 aqBv 的值,如果出现两个相同的,则相减可以得到一组 (a,v),令 v>0 即可使最后的限制落在 [B2,B2] 之间,所以一定有解。

然后考虑怎么对每个 q 求出这个 a。考虑枚举每个 a,将 q0 开始每次增加 1,如果 aqB 没有落在目标区间内,因为 aB 相对于 p 来说比较小,所以可以直接找到下一个合法的 q,就可以处理了。

同余方程相关

WC2021 斐波那契

感觉,很深刻啊!

首先设 fi 表示斐波那契数列。那么有 Fi=fib+fi1a。令其 =0,则我们需要解一个形如 fib+fi1a=0 的方程。

打表发现,斐波那契数列在模 m 意义下循环节长度为 O(m) 级别的,事实上有证明其 6m

b 取相反数,得到要解 fibfi1a(modm)

如果 m 是质数那么这题就唐起来了,移项然后求逆元,最后查个表就行。但是这并不是,考虑进行化简。

先除掉 gcd(a,gcd(b,m)),这时 gcd(b,m) 一定与 a 互质。我们考虑给两边同时除掉 gcd(b,m),则有 gcd(b,m)fi1,将 fi1 除去之后,再考虑给两边同时除掉 gcd(fi1,m)。因为 b 已经互质,所以有 gcd(fi1,m)fi。但是我们发现,fifi+1 是互质的,证明可以考虑辗转相减,这样的话 gcd(fi1,m)=1,也就是说在没有除去 gcd(b,m) 之前,gcd(fi1,m)=gcd(b,m)

这样的话我们如果枚举一对 (fi1,fi),则可以计算出 fifi11modm 的值,进而就可以在询问的时候直接查表得到答案。

时间复杂度是因子和乘上一个 log,因子和据说是 O(nloglogn) 级别的,可以通过。

submission

P4621 [COCI2012-2013#6] BAKTERIJE

唐题,发现每个细菌走到陷阱里可以被不超过 4 个同余方程表示,则 4k 枚举每个细菌选了哪个同余方程,然后 exCRT 合并计算最小解即可。复杂度 O(nmk+4klogT),记得某些地方要开 __int128。

submission

莫比乌斯反演相关

[CmdOI2019] 简单的数论题

假设 A<B,发现 lcm(i,j)gcd(i,j) 相当于选了两个互质的 i,j,恰好 φ(ij)=φ(i)φ(j)gcd(i,j)=1 的时候是成立的,所以就把式子化成:

dAidAjdBφ(i)φ(j)[gcd(i,j)=1]=dAkdAμ(k)idkAjdkBφ(ik)φ(jk)

idkAφ(ik) 太难看了,我们考虑预处理 G(n,k)=inφ(ik),将原式变成:

dAkdAμ(k)G(Akd,k)G(Bkd,k)

现在已经可以 O(AlnA) 回答一组询问了,我们考虑进行根号分治,设 T=kd,对于 T 较小的部分,考虑仍然暴力枚举 k,d,复杂度 O(nlnn)。对于 T 较大的部分,AT 较小。我们考虑预处理 S(i,j,T)=dTkdTG(AT,k)G(BT,k)。因为 S(i,j,T)TAmin(i,j),所以总共 T 的长度之和为 nn 的,预处理复杂度 O(nnlnn)。总复杂度 O((n+q)nlnn)

submission

P5518 [MtOI2019] 幽灵乐团 / 莫比乌斯反演基础练习题

唐题,type=0type=1 的部分推推式子就能做,type=2 的部分推推式子发现就是把 type=0 外面套个整除分块。预处理复杂度都是 O(nlnn)type=0,1 复杂度是 O(Tnlogn)type=2O(Tn34logn)type=2 应该可以通过一些技巧把 log 放到 n12 上,但是不想写了(

submission

阶相关

真的好厉害!

δm(n) 表示最小的 a 使得 ma1(modn),这个被称为阶,可以通过不断试除 φ(m)O(log2m) 时间内求得。

没了。

P5605 小 A 与两位神仙

发现 p 有原根,记作 g。若我们求出了 x=gx,y=gy,则我们相当于要解同余方程 xay(modφ(p))

但有个问题:虽然我们可以求出原根,但是我们并不能很快的求出离散对数。

考虑我们只需要判定,上面那个同余方程的有解要求 gcd(x,φ(p))ygcd(x,φ(p))gcd(y,φ(p)),如果我们能对于一个 x 求出 gcd(x,φ(p)),那么这个就是可以判定的。

你仔细思考一下,发现 δm(n)=φ(m)gcd(n,φ(m)),于是你把阶求出来就好了。

理论上需要 pollard-rho,但是好像不用也能过(

submission

[WC2020] 猜数游戏

所以这个题为啥不出 O(nlog2p) 的数据范围(

首先我们发现,如果 ax 被选,并且没有一个 ay 满足其 pow 可以达到 ax,那么说明这个数必选。

如果 p 是质数,那么直接按照上面的方法就可以做到 O(nlog2p+d(p)logp)

如果 p 不是质数,那么发现和 p 互质的数可以按照上面一样做,如果不互质那么和上面是不影响的,并且每个数 pow logp 次就会变成 0,所以可以暴力,复杂度 O(nlogplogn)

submission

群论相关

题目太多了……

大部分题就是给你一个环,然后旋转同构这样子的,需要枚举循环节长度计算不动点个数。

[MtOI2018] 魔力环

枚举循环节长度,然后问题变成计算一个长度为 n 的环,没有连续 k1 相邻的方案数。

枚举头尾有多少个 1 相连,然后变成链。枚举有多少 1 的联通块长度 >k,给这些段前面捆一个 0,然后就可以随意放,注意一开始需要一个 0 和开头的 1 隔开。

因为至多只有 nk 段长度 >k 的段,所以对于一个 n,计算的复杂度是 O(n) 的,总复杂度为 O(d(n)),可以看做 O(nloglogn)

二次剩余

引入 勒让得符号 (np) 表示 n 是否在模 p 意义下是二次剩余。在 p 是奇素数的情况下,

  • n=0 时,(np)=0
  • n 为二次剩余时,(np)=1
  • n 不为二次剩余时,(np)=1

判定可以使用欧拉准则,即 (np)=np12modp

【模板】二次剩余

随机找一个 a,满足 a2nmodp 为非二次剩余,记作 w,感性理解一下,找到这个 a 的概率为 12

记单位元 i2=w,我们考察 (a+i)p+1,其等于 (a+i)(a+i)p=(a+i)j=0p(pj)ajipj

因为根据 Lucas 定理 (pj)j[1,p1] 的时候为 0,因此上式为 (a+i)(ap+ip)

又因为 w 为非二次剩余,因此 ip1modp=1,上式就等于 (a+i)(ai)=a2i2=b

这时候计算 (a+i)p+12 就可以得到我们需要的二次剩余了。

submission

Code+#7 同余方程

首先 CRT 拆成奇质数,最后的答案是所有奇质数的乘积。

我们发现实际上勒让得符号架起了一座判定与计数之间的桥梁。(np)+1 就是 nmodp 意义下的二次剩余解的个数,因此,我们不妨考虑枚举 a+bx(modp),然后计算所有 (ap12+1)(bp12+1) 的值。

拆开之后,因为二次剩余和非二次剩余对半开,就剩下了 p+a+bx(modp)ap12bp12

特判 x=0。将 b 代换回 xa,就得到 0a<p(axa2)p12=1a<p(xa1)p12,发现 xa 取遍所有正数,所以只有 1 取不到,需要特别计算。

submission

杂题

CF1796F Strange Triples

感觉这个题很厉害啊!评 *2900 是不是有点低了。

我们首先枚举 n 的位数和 b 的位数,记作 10z10x,那么原式就相当于 a10z+nn10x+b=ab,把 n 解出来就是 n=ab(10z1)a10xb,有解要求 a10xbab(10z1)

发现啥都不知道这个东西肯定是不能做的,所以我们考虑枚举一个 b。设 gcd(a,b)=k,将两边同时除掉 k 之后,变成 ak10xbkakb(10z1)。我们发现 gcd(ak,ak10xbk)=1,那么右边的 ak 就可以去掉了。

现在我们发现我们直接枚举 b(10x1) 的复杂度是可以接受的,因为 d(x,y)d(x)+d(y),因此所有 d(b(10z1)) 之和不超过 BlnB 乘以所有 10x1 的约数个数和,后面那个的值是 155,因此直接枚举,然后钦定其就是 ak10xbk

这有什么用呢?一个重要的观察是 10x>bk,也就是说,ak 的值是唯一确定的!然后 bk 的值就可以确定了!然后因为我们已经枚举 b 了,所以 k 的值可以确定,然后就对完了!

最后记得 check 之前钦定的东西。复杂度 O(dBlnB),其中 d155

submission

posted @   275307894a  阅读(372)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2022-02-28 luogu P2664 树上游戏
2022-02-28 luogu P7516 [省选联考 2021 A/B 卷] 图函数
2022-02-28 luogu P2150 [NOI2015] 寿司晚宴
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示