2693: jzptab

Description

Input

一个正整数T表示数据组数

接下来T行 每行两个正整数 表示N、M

Output

T行 每行一个整数 表示第i组数据的结果

Sample Input

1

4 5

Sample Output

122

HINT
T <= 10000

N, M<=10000000

 
 
【分析】
  bzoj2154的进化版!多组。。
  根据bzoj2154的推导我们有:
  
 对于这个把它放入线性筛里面预处理就好了。
 
 
  首先证明f[n]=∑i*mu[i](i|n)为积性函数:
  设函数g[n]=n*mu[n],那么f=1*g,1和g都是积性函数,所以f也是积性函数。
 
  线性筛的时候,当i%prime[j]!=0 由积性函数得,f[i*prime[j]]=f[i]*f[prime[j]]
  当i%prime[j]==0时,若再加入prime[j],mu值为0,所以对答案没有影响。即f[i*prime[j]]=f[i]。
  想这里的时候还是有思维局限,要记住当有一个质因子质数大于1时,mu值就为0了,这个特点前面一题也用到过!!
 
  还有一个不是很懂的地方就是为什么每次加进去时都要MOD成正数,表示不知道化简之后为什么不能加一个负数进去~~导致WA很久~~
 
代码如下:
 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
#define Mod 100000009
#define Maxn 10000010
#define LL long long LL mu[Maxn],pri[Maxn],g[Maxn],h[Maxn],pl;
bool q[Maxn]; LL mymin(LL x,LL y) {return x<y?x:y;} void get_mu(LL mx)
{
pl=;
memset(q,,sizeof(q));
mu[]=;g[]=;
for(LL i=;i<=mx;i++)
{
if(q[i])
{
pri[++pl]=i;
mu[i]=-;
g[i]=+i*mu[i];
}
for(LL j=;j<=pl;j++)
{
if(i*pri[j]>mx) break;
q[i*pri[j]]=;
if(i%pri[j]==) mu[i*pri[j]]=,g[i*pri[j]]=g[i];
else mu[i*pri[j]]=-mu[i],g[i*pri[j]]=(g[i]*g[pri[j]])%Mod;
if(i%pri[j]==) break;
}
}
for(LL i=;i<=mx;i++) g[i]=(i*g[i])%Mod;
h[]=g[];
for(LL i=;i<=mx;i++) h[i]=(h[i-]+g[i])%Mod;
} LL get_sum(LL x,LL y)
{
return ( ( ((x+)*x/)%Mod )*( ((y+)*y/)%Mod ) )%Mod;
} LL get_ans(LL n,LL m)
{
LL ans=; LL sq=(LL)ceil(sqrt((double)m));
for(LL i=;i<=mymin(sq,n);i++)
{
ans=(ans+(g[i]%Mod+Mod)%Mod*get_sum(n/i,m/i) )%Mod;
} for(LL i=sq+;i<=n;)
{
LL x=n/i,y=m/i;
LL r1=n/x+,r2=m/y+;
LL r=mymin(r1,r2);
if(r>m+) r=m+;
// if((((h[r-1]-h[i-1])%Mod+Mod)%Mod)<0) while(1);
ans=( ans+(((h[r-]-h[i-])%Mod+Mod)%Mod)*get_sum(x,y) )%Mod;
i=r;
}
return ans;
} int main()
{
int T;
T=;
scanf("%d",&T);
get_mu(); while(T--)
{
LL n,m,t;
scanf("%lld%lld",&n,&m);
if(n>m) t=n,n=m,m=t; LL ans=get_ans(n,m); printf("%lld\n",ans);
}
return ;
}

[BZOJ 2693]

 
 
2016-08-30 16:49:26
 
 
 
 

【BZOJ 2693】jzptab(莫比乌斯+分块)的更多相关文章

  1. BZOJ 2693: jzptab( 莫比乌斯反演 )

    速度居然#2...目测是因为我没用long long.. 求∑ lcm(i, j) (1 <= i <= n, 1 <= j <= m) 化简之后就只须求f(x) = x∑u( ...

  2. BZOJ 2693: jzptab [莫比乌斯反演 线性筛]

    2693: jzptab Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1194  Solved: 455[Submit][Status][Discu ...

  3. BZOJ 2693 jzptab ——莫比乌斯反演

    同BZOJ 2154 但是需要优化 $ans=\sum_{d<=n}d*\sum_{i<=\lfloor n/d \rfloor} i^2 *\mu(i)* Sum(\lfloor \fr ...

  4. BZOJ 2693: jzptab 莫比乌斯反演 + 积性函数 +筛法

    Code: #include<bits/stdc++.h> #define ll long long #define M 10001000 #define maxn 10200100 #d ...

  5. 【莫比乌斯反演】关于Mobius反演与lcm的一些关系与问题简化(BZOJ 2154 crash的数字表格&&BZOJ 2693 jzptab)

    BZOJ 2154 crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b ...

  6. [bzoj 2693] jzptab & [bzoj 2154] Crash的数字表格 (莫比乌斯反演)

    题目描述 TTT组数据,给出NNN,MMM,求∑x=1N∑y=1Mlim(x,y)\sum_{x=1}^N\sum_{y=1}^M lim(x,y)\newlinex=1∑N​y=1∑M​lim(x, ...

  7. bzoj 2693: jzptab 线性筛积性函数

    2693: jzptab Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 444  Solved: 174[Submit][Status][Discus ...

  8. 【BZOJ】2693: jzptab 莫比乌斯反演

    [题意]2154: Crash的数字表格 莫比乌斯反演,多组询问,T<=10000. [算法]数论(莫比乌斯反演) [题解]由上一题, $ans=\sum_{g\leq min(n,m)}g\s ...

  9. ●BZOJ 2693 jzptab

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2693 题解: 莫比乌斯反演 先看看这个题,BZOJ 2154 Crash的数字表格,本题的升 ...

  10. Bzoj 2818: Gcd 莫比乌斯,分块,欧拉函数,线性筛

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 3241  Solved: 1437[Submit][Status][Discuss ...

随机推荐

  1. 移动端和PC端通用的三级导航菜单栏

    免责声明: 本博客发布的所有信息资料都将尽可能注明出处.作者及日期,本人无意侵犯他人相关权益,如无意中侵犯了哪个媒体或个人的权益或知识产权,请留言或来信告之,本人将立即给予删除. Demo下载地址:h ...

  2. WildFly 9.0.2+mod_cluster-1.3.1 集群配置

    一.配置背景 最近使用WildFly 9.0.2作为中间件开发系统,给客户不熟的时候需要使用集群来进行负载均衡,一开始想到是使用Nginx.但是只通过Nginx使用 ip_hash 模式没有做到ses ...

  3. 转载--SQL Server 2005的XQuery介绍

    原文地址: http://bbs.51cto.com/thread-458009-1-1.html   引用: 摘要 本文介绍了SQL Server 2005能够支持的XQuery的各方面特性如FLW ...

  4. Servlet相关接口和Servlet的生命周期

    http://www.cnblogs.com/luotaoyeah/p/3860292.html Servlet相关接口和Servlet的生命周期 创建一个Servlet类最直接的方式是实现javax ...

  5. 常用的WebService调用接口

    天气预报Web服务,数据来源于中国气象局Endpoint :http://www.webxml.com.cn/WebServices/WeatherWebService.asmxDisco      ...

  6. 关于tableView的那些坑(一)—— automaticallyAdjustsScrollViewInsets属性

    最近用tabbar来切换控制器,用childViewController来实现多控制器管理,多列表切换,在子控制器中设置了automaticallyAdjustsScrollViewInsets属性为 ...

  7. ios tableview 上加 textfiled

    ios tableview 上加 textfiled 首先附上我项目中用曾经用到的几张图  并说明一下我的用法: 图1: 图2: 图3: 心在你我说一下  我当初的实现 方法 ,希望能给你们一些  启 ...

  8. Spring中Bean实例的生命周期及其行为

  9. Codevs 1064 虫食算 2004年NOIP全国联赛提高组

    1064 虫食算 2004年NOIP全国联赛提高组 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 所谓虫食算,就是原先的算式 ...

  10. oracle所在磁盘空间不足导致了数据库异常

    oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占 ...