【bzoj 3601】一个人的数论 (莫比乌斯反演+伯努利数)
题解:
(吐槽:网上题解那个不严谨猜测真是没谁了……关键是还猜得辣么准……)
直接化简到求和那一段:
fd(n)=∑t|nμ(t)td∑nti=1id
设Sd(T)=∑Ti=1id
那这个是什么呢?伯努利数(我会说我百度找到的吗……)
sp(T)=∑p+1i=1(−1)p+1−iCip+1Bp+1−ip+1ni(这个是百度那个公式化过来的)
然后ni前面那一堆玩意就是网上题解的ai。
接下来的化简我就不解释了……http://www.cnblogs.com/jianglangcaijin/p/4033399.html
然后我们只要求出C和B这题就没了。(貌似可以把d的范围再扩10倍233)
代码:
1 #include<cstdio> 2 using namespace std; 3 typedef long long ll; 4 const ll mod=1e9+7; 5 const int N=10000; 6 inline ll read(){ 7 ll s=0,k=1;char ch=getchar(); 8 while(ch<'0'|ch>'9') ch=='-'?k=-1:0,ch=getchar(); 9 while(ch>47&ch<='9') s=s*10+(ch^48),ch=getchar(); 10 return s*k; 11 } 12 inline ll powmod(ll a,ll b){ 13 ll ans=1; 14 if(b<0) 15 return powmod(powmod(a,mod-2),-b); 16 a%=mod; 17 while(b){ 18 if(b&1) ans=ans*a%mod; 19 b>>=1;a=a*a%mod; 20 }return ans; 21 } 22 ll w,d; 23 ll p[N],pk[N]; 24 ll tot=1; 25 inline ll calc(int n){ 26 ll t=powmod(tot,n); 27 for(int i=1;i<=w;i++){ 28 t=t*(1ll-powmod(p[i],d-n))%mod; 29 } 30 if(t<0) t+=mod; 31 return t; 32 } 33 ll c[105][105],b[105]; 34 int main(){ 35 d=read(),w=read(); 36 ll n=w; 37 for(int i=1;i<=n;i++){ 38 p[i]=read(),pk[i]=read(); 39 tot=tot*powmod(p[i],pk[i])%mod; 40 } 41 c[0][0]=1; 42 for(int i=1;i<=101;i++){ 43 c[i][0]=1; 44 for(int j=1;j<=i;j++) 45 c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod; 46 } 47 b[0]=1; 48 for(int i=1;i<=101;i++){ 49 for(int j=0;j<i;j++) 50 b[i]=(b[i]+c[i+1][j]*b[j])%mod; 51 b[i]=b[i]*(-powmod(i+1,mod-2))%mod+mod; 52 b[i]%=mod; 53 } 54 ll ans=0; 55 ll inv=powmod(d+1,mod-2); 56 for(int i=1;i<=d+1;i++){ 57 ll temp=((d+1-i&1)?-1:1)*c[d+1][i]*b[d+1-i]%mod*inv%mod; 58 if(temp==0) 59 continue; 60 temp=temp*calc(i)%mod; 61 ans+=temp; 62 ans%=mod; 63 } 64 printf("%lld\n",(ans%mod+mod)%mod); 65 } 66 /* 67 3 2 68 2 1 69 5 1 70 */
没有什么不可能。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?
· 《HelloGitHub》第 108 期