bzoj 4176 Lucas的数论 莫比乌斯反演
来源:互联网 发布:win10系统优化批处理 编辑:程序博客网 时间:2024/05/27 21:08
复杂度
#include <bits/stdc++.h>using namespace std;#define ll long long#define M 15000000#define M1 15000010#define mod 1000000007bool ip[M1];int mu[M1],prime[M1/10];int cnt,n,ans;map<int,int>ma;void init(){ mu[1]=1; for(int i=2;i<=M;i++) { if(!ip[i])prime[++cnt]=i,mu[i]=-1; for(int j=1;j<=cnt&&i*prime[j]<=M;j++) { ip[i*prime[j]]=1; if(i%prime[j]==0)break; mu[i*prime[j]]=-mu[i]; } } for(int i=1;i<=M;i++)mu[i]+=mu[i-1];}int f(int x){ if(x<=M)return mu[x]; if(ma.count(x))return ma[x]; int ret=1; for(int i=2,last;i<=x;i=last+1) { last=x/(x/i); ret-=f(x/i)*(last-i+1); } return ma[x]=ret;}int cal(int x){ int ret=0; for(int i=1,last;i<=x;i=last+1) { last=x/(x/i); ret=(ret+(ll)(x/i)*(last-i+1)%mod)%mod; } return ret;}int main(){ //freopen("tt.in","r",stdin); init(); scanf("%d",&n); for(int i=1,last;i<=n;i=last+1) { last=n/(n/i); int t=cal(n/i); ans=(ans+(ll)(f(last)-f(i-1))*t%mod*t%mod)%mod; } printf("%d\n",(ans+mod)%mod); return 0;}
0 0
- BZOJ 4176 Lucas的数论 莫比乌斯反演
- bzoj 4176 Lucas的数论 莫比乌斯反演
- BZOJ 4176: Lucas的数论 莫比乌斯反演 杜教筛
- bzoj 4176: Lucas的数论 (反演)
- bzoj4176 Lucas的数论 (杜教筛 +莫比乌斯反演)
- [数论][莫比乌斯反演] BZOJ 4816: 数字表格
- BZOJ 3601 一个人的数论 莫比乌斯反演+高斯消元
- bzoj 3601: 一个人的数论 高斯消元&莫比乌斯反演
- bzoj 4174 tty的求助 数论 莫比乌斯反演
- [莫比乌斯反演 高斯消元 数学技巧] BZOJ 3601 一个人的数论
- 【数论】(莫比乌斯反演)关于莫比乌斯反演的小结
- 数论 莫比乌斯反演
- BZOJ_P2820 YY的GCD(数论+莫比乌斯反演)
- 【BZOJ3601】一个人的数论,莫比乌斯反演+高斯消元
- bzoj3601 一个人的数论 莫比乌斯反演+高斯消元
- bzoj 4176 Lucas的数论
- BZOJ 4176 Lucas的数论
- [数论][莫比乌斯反演][杜教筛] BZOJ 3512: DZY Loves Math IV
- iOS开发小知识点汇总
- android 前置摄像头扫描二维码
- RTP 有效负载(载荷)类型,RTP Payload Type
- Ubuntu14.04基于Anaconda安装Keras并切换后端到Theano
- 仿蘑菇街界面应用
- bzoj 4176 Lucas的数论 莫比乌斯反演
- a.indexOf('str')报错原因
- tensorflow学习记录--1.安装
- Timer Schedule参数说明
- 关于https访问的证书设置
- mysql查询表死锁和结束死锁
- cdecl:C语言声明分析器
- php的加密方式
- Builder模式——AlertDialog中的Builder简单应用