hdu5608 function
来源:互联网 发布:手机压缩文件解压软件 编辑:程序博客网 时间:2024/06/01 10:36
口胡
来看这个傻逼式子,令
那就是
傻逼莫比乌斯反演
你不是求
那就开始乱搞
令
然后就
怎么感觉好暴力啊预处理那块
代码
//莫比乌斯反演、杜教筛 #include <cstdio>#include <algorithm>#define maxn 1000005#define mod 1000000007ll#define ll long longusing namespace std;ll big[maxn+10], small[maxn+10], N, inv, prime[maxn/10], mu[maxn], f[maxn], g[maxn];bool mark[maxn];inline ll s1(ll x){return x*(1+x)/2%mod;}inline ll s2(ll x){return x*(x+1)%mod*(2*x+1)%mod*inv%mod;}inline ll gs(ll x){return (s2(x)-3*s1(x)+2*x)%mod;}inline ll gets(ll n){return n<maxn?small[n]:big[N/n];}void calc(ll n){ if(n<maxn or gets(n))return; ll i, last, &s=big[N/n]; s=gs(n); for(i=2;i<=n;i=last+1) { last=n/(n/i); if(!gets(n/i))calc(n/i); s=(s-(last-i+1)*gets(n/i))%mod; }}void init(){ ll i, j; mu[1]=1; for(i=2;i<maxn;i++) { if(!mark[i])prime[++*prime]=i, mu[i]=-1; for(j=1;i*prime[j]<maxn;j++) { mark[i*prime[j]]=1; if(i%prime[j]==0)break; mu[i*prime[j]]=-mu[i]; } } for(i=1;i<maxn;i++)g[i]=(i*i-3*i+2)%mod; for(i=1;i<maxn;i++)for(j=i;j<maxn;j+=i)f[j]=(f[j]+mu[i]*g[j/i])%mod; for(i=1;i<maxn;i++)small[i]=(small[i-1]+f[i])%mod;}int main(){ inv=166666668; init(); ll T; scanf("%lld",&T); while(T--) { for(int i=1;i<=1005;i++)big[i]=0; scanf("%lld",&N); calc(N); printf("%lld\n",(gets(N)+mod)%mod); } return 0;}
0 0
- hdu5608 function
- hdu5608 function
- hdu5608 function
- [杜教筛] HDU5608. function
- [BestCoder Round #68][HDU5608]function
- [hdu5608]function 数论变换入门 杜教筛
- [杜教筛+莫比乌斯反演] HDU5608: function
- hdu5608 几类经典的根号复杂度算法
- Function
- function
- function
- function $()
- Function
- function
- Function
- $(function(){...});
- function
- Function
- 面向对象娱乐版Tab栏切换
- Qt5下利用freeglut实现最基本OpenGL程序(图文解释)
- 基于Google的NotePad改写的记事本应用
- Java Web简单的注册登陆界面(mysql+servlet+jsp)
- 【好东西】ACM在线模版-f-zyj
- hdu5608 function
- activiti工作流数据库表详细介绍(23张表)
- Iterator (迭代器)
- "java.util.NoSuchElementException: No value present" 问题解决:重写hashCode 和 equals 方法
- 【多线程】多线程教程之三---线程的死锁
- 银行统一支付平台(介绍、架构)
- linux中在命令行打开图形程序出现Xlib: connection to ":0.0" refused by server等错误
- SVN提交出错:Attempted to lock an already-locked dir
- ACM刷题之EOJ————黑心啤酒厂