BZOJ2154: Crash的数字表格
2016-03-10 13:38
330 查看
讲道理这一题是可以做到O(n)预处理O(sqrt(n))询问的
然而我这么打了还是跑起来很慢。。。
最后的式子是
sigma(G=1,n) (Sigma(i=1,n/G) i ) * (Sigma(i=1,n/G) j ) * (Sigma(d|G)d * mu(G/d) * G * G / d / d)
然后我们把
(Sigma(d|G)d * mu(G/d) * G * G / d / d)看做F(G)
稍作分析可以知道
当x与p互质时
F(x * p)=(p - p * p) * F(x)
否则
F(x * p)=p*F(x)
然后就可以O(n)预处理O(sqrt(n))询问了
讲道理由于我太弱了所以我不会MarkDown….
然而我这么打了还是跑起来很慢。。。
最后的式子是
sigma(G=1,n) (Sigma(i=1,n/G) i ) * (Sigma(i=1,n/G) j ) * (Sigma(d|G)d * mu(G/d) * G * G / d / d)
然后我们把
(Sigma(d|G)d * mu(G/d) * G * G / d / d)看做F(G)
稍作分析可以知道
当x与p互质时
F(x * p)=(p - p * p) * F(x)
否则
F(x * p)=p*F(x)
然后就可以O(n)预处理O(sqrt(n))询问了
讲道理由于我太弱了所以我不会MarkDown….
#include<cstdio> #include<iostream> #include<cstring> using namespace std; #define ll long long const int maxn=10000011; const int Mod=20101009; ll Pre[maxn],tp; bool check[maxn]; int prime[maxn],tot; int sum[maxn]; int main() { int i,j,k; Pre[1]=1; sum[1]=1; int n,m,T; for(i=2;i<maxn;i++) { if(!check[i])prime[++tot]=i,Pre[i]=i-i*1ll*i; tp=Pre[i]; Pre[i]+=Pre[i-1]; if(Pre[i]>=Mod||Pre[i]<=-Mod)Pre[i]%=Mod; for(j=1;j<=tot;j++) { k=prime[j]*i; if(k>maxn)break; else if(i%prime[j]==0){check[k]=true,Pre[k]=prime[j]*tp;if(Pre[k]>=Mod||Pre[k]<=-Mod)Pre[k]%=Mod;;break;} check[k]=true,Pre[k]=((-prime[j]+1ll)*prime[j]%Mod)*tp; if(Pre[k]>=Mod||Pre[k]<=-Mod)Pre[k]%=Mod; } } //scanf("%d",&T); int t=0; for(i=2;i<maxn;i++)sum[i]=(sum[i-1]+i)%Mod; //while(T--) //{ scanf("%d%d",&n,&m); if(n>m)swap(n,m); int G=1,next; int ans=0; while(G<=n) { next=min(m/(m/G)+1,n/(n/G)+1); ans+=(sum[n/G]*1ll*sum[m/G]%Mod)*(Pre[next-1]-Pre[G-1])%Mod; ans%=Mod; G=next; t++; } printf("%d\n",(ans+Mod)%Mod); //} }
相关文章推荐
- 将手机log定向输入到文件中
- iOS 集成银联支付
- Oracle 11G R2 用exp无法导出空表解决方法
- JS返回顶部and底部加载实例
- 外界用户对支付宝登录密码认知度较低,只知道支付密码,因此设计如此
- [从头学数学] 第130节 全等三角形
- 写给自己
- 实际应用中经常用的代码片段,但是没有必要记住的
- 关于sourcetree的冲突的解决方法————进阶
- Web.config配置文件详解(新手必看)(转)
- 10个操作数的随机四则运算
- Exception in thread java.lang.IllegalThreadStateException
- PL/SQL Developer使用技巧、快捷键
- Problem F: 结构体--学生信息排序
- POJ1511
- 被遗忘的C结构体打包技术
- Ext3.2 继承
- hdu-5584 LCM Walk(数论)
- JS中apply和call的用法
- Spring MVC URL路径映射