【BZOJ2693】jzptab(莫比乌斯反演)

题面

讨厌权限题,只能跑到别的OJ上交

这题是一样的

多组数据

求$$\sum_{i=1}n\sum_{j=1}mlcm(i,j)$$

题解

前面的部分直接看上面的那个链接

\[ans=\sum_{d=1}^nd\sum_{i=1}^{n/d}i^2S(\frac{n}{id})S(\frac{m}{id})\mu(i)
\]

其中\(S(x)=1+2+...x=\frac{x(x+1)}{2}\)

令\(T=id\)

\[ans=\sum_{T=1}^nS(\frac{n}{T})S(\frac{m}{T})\sum_{d|T}d^2\frac{T}{d}\mu(d)
\]

设\(f(x)=x^2\mu(x)\),\(g(x)=\frac{T}{x}\)

很显然,这两个都是积性函数

所以,后面的东西也是积性函数

直接线性筛出来就行了

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define MOD 100000009
#define MAX 10000000
inline int read()
{
int x=0,t=1;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=-1,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return x*t;
}
bool zs[MAX+10];
int sum[MAX+10],pri[MAX],tot;
void pre()
{
zs[1]=true;sum[1]=1;
for(int i=2;i<=MAX;++i)
{
if(!zs[i])pri[++tot]=i,sum[i]=(i-1ll*i*i%MOD+MOD)%MOD;
for(int j=1;j<=tot&&i*pri[j]<=MAX;++j)
{
zs[i*pri[j]]=true;
if(i%pri[j]==0){sum[i*pri[j]]=1ll*sum[i]*pri[j]%MOD;break;}
else sum[i*pri[j]]=1ll*sum[i]*sum[pri[j]]%MOD;
}
}
for(int i=1;i<=MAX;++i)sum[i]=(sum[i-1]+sum[i])%MOD;
}
int n,m;
int main()
{
pre();
int T=read();
while(T--)
{
n=read();m=read();
if(n>m)swap(n,m);
int i=1,j;
long long ans=0;
while(i<=n)
{
j=min(n/(n/i),m/(m/i));
int tt=(1ll*(1+n/i)*(n/i)/2%MOD)*(1ll*(1+m/i)*(m/i)/2%MOD)%MOD;
ans+=1ll*(sum[j]-sum[i-1]+MOD)%MOD*tt%MOD;
ans%=MOD;
i=j+1;
}
printf("%lld\n",(ans+MOD)%MOD);
}
return 0;
}

【BZOJ2693】jzptab(莫比乌斯反演)的更多相关文章

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

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 2068  Solved: 834[Submit][Status][Discuss] Descripti ...

  2. bzoj2693 jzptab 莫比乌斯反演|题解

    Description   Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M Output T行 每行一个整数 表示第i组数据的结果 Sample Input 1 4 5 ...

  3. 【BZOJ2693】jzptab [莫比乌斯反演]

    jzptab Time Limit: 10 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description   求 Input 第一行一个 ...

  4. 【bzoj2693】jzptab 莫比乌斯反演+线性筛

    题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...

  5. [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)

    题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ...

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

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

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

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

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

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

  9. luoguP1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    题意 注:默认\(n\leqslant m\). 所求即为:\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)\) 因为\(i*j=\gcd(i, ...

  10. [国家集训队]Crash的数字表格 / JZPTAB 莫比乌斯反演

    ---题面--- 题解: $$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{\frac{ij}{gcd(i, j)}}$$ 改成枚举d(设n < m) $$ans ...

随机推荐

  1. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  2. yum 安装 nfs,rpcbind 出现错误 libc.so.6(GLIBC_2.14)(64bit) is needed by

    错误信息: Running rpm_check_debugERROR with rpm_check_debug vs depsolve:libc.so.6(GLIBC_2.14)(64bit) is ...

  3. 基于jq的表单填充

    //表单填充 formDataLoad: function (domId, obj) { for (var property in obj) { if (obj.hasOwnProperty(prop ...

  4. 如何让div水平居中呢?

    一百度div居中,多数都是一个答案,但是有时候这种方法并不是万能的...不废话,将我知道的方法都列举一下好了,随时更新. 1.设置width值,指定margin-left和margin-right为a ...

  5. 20170109| javascript记录

    1.时间戳的使用: 在php中的时间戳是以秒为单位的,在js中转换过来的时间戳是以毫秒为单位的.当我们使用js和php同时开发的时候,就需要保证它们都是处于同一时间单位下才好进行相关的计算. 首先说一 ...

  6. Vue中method与computed的区别

    为了说明method与computed的区别,在此我想先来看看computed属性在vue官网中的说法:模板内的表达式是非常便利的,但是它们实际上只用于简单的运算.在模板中放入太多的逻辑会让模板过重且 ...

  7. node实现jsonp跨域

    1. 搭建node server //引入模块 var http=require("http"); var fs=require("fs");var url = ...

  8. 3.3.3 PCI设备对可Cache的存储器空间进行DMA读写

    PCI设备向"可Cache的存储器空间"进行读操作的过程相对简单.对于x86处理器或者PowerPC处理器,如果访问的数据在Cache中命中,CPU会通知FSB总线,PCI设备所访 ...

  9. SPI FLASH与NOR FLASH的区别?

    1.SPI Flash (即SPI Nor Flash)是Nor Flash的一种: 2.NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR ...

  10. FusionCharts 2D柱状图和折线图的组合图调试错误

    在设计FusionCharts 2D柱状图和折线图的组合图的时候,我发现不管怎么重启服务器,组合图就是不出来.后来,我通过调试发现我犯了一个致命的错误,运用平常一贯的思维,认为3D图有这种类型,那么2 ...