UOJ#62. 【UR #5】怎样跑得更快 数论 莫比乌斯反演
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ62.html
题解
太久没更博客了,该拯救我的博客了。
∑1≤j≤ngcd
于是只需要 2 次因数反演,1 次倍数反演,三次莫比乌斯反演就好了。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include <bits/stdc++.h> using namespace std; typedef long long LL; LL read(){ LL x=0,f=1; char ch= getchar (); while (! isdigit (ch)&&ch!= '-' ) ch= getchar (); if (ch== '-' ) f=0,ch= getchar (); while ( isdigit (ch)) x=(x<<1)+(x<<3)+(ch^48),ch= getchar (); return f?x:-x; } const int N=100005,mod=998244353; void Del( int &x, int y){ if ((x-=y)<0) x+=mod; } void Add( int &x, int y){ if ((x+=y)>=mod) x-=mod; } int n,q,c,d; int b[N],f[N],g[N],h[N],x[N]; int Pow( int x, int y){ if (y<0) return Pow(x,y+mod-1); int ans=1; for (;y;y>>=1,x=(LL)x*x%mod) if (y&1) ans=(LL)ans*x%mod; return ans; } void Mobius( int *f, int *g, int n, int flag){ for ( int i=1;i<=n;i++) g[i]=f[i]; if (flag==0) for ( int i=1;i<=n;i++) for ( int j=i<<1;j<=n;j+=i) Del(g[j],g[i]); else for ( int i=n;i>=1;i--) for ( int j=i<<1;j<=n;j+=i) Del(g[i],g[j]); } void solve(){ for ( int i=1;i<=n;i++) b[i]=(LL)read()*Pow(i,mod-1-d)%mod; Mobius(b,h,n,0); for ( int i=1;i<=n;i++) if (g[i]) h[i]=(LL)h[i]*Pow(g[i],-1)%mod; else if (h[i]) return ( void )( puts ( "-1" )); Mobius(h,x,n,1); for ( int i=1;i<=n;i++) x[i]=(LL)Pow(i,mod-1-d)*x[i]%mod; for ( int i=1;i<=n;i++) printf ( "%d " ,x[i]); puts ( "" ); } int main(){ n=read(),c=read(),d=read(),q=read(); for ( int i=1;i<=n;i++) f[i]=Pow(i,c-d); Mobius(f,g,n,0); while (q--) solve(); return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· DeepSeek本地性能调优
· 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略