interlinkage:

https://nanti.jisuanke.com/t/38226

description:

solution:

显然$\frac{\phi(j^2)}{\phi(j)}=j,\frac{\phi(k^3)}{\phi(k)}=k^2$

原式可以化简为

$\sum_{i=1}^{n}\sum_{j=1}^n\sum_{k=1}^{n}jk^2\phi(gcd(i,j,k))$

我们枚举$gcd(i,j,k)$,得

$\sum_{d=1}^{n}\phi(d)\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{k=1}^njk^2[gcd(i,j,k)==d]$

$\sum_{d=1}^{n}\phi(d)\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}\sum_{k=1}^{n/d}jk^2d^3[gcd(i,j,k)==1]$

$\sum_{d=1}^{n}\phi(d)\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}\sum_{k=1}^{n/d}jk^2d^3\sum_{s|gcd(i,j,k)}\mu(s)$

设$sum1(n)=\sum_{i=1}^{n}i,sum2(n)=\sum_{i=1}^{n}i^2$

$\sum_{d=1}^{n}\phi(d)\sum_{i=1}^{n/d}\mu(i) \lfloor\frac{n}{id}\rfloor sum1(\lfloor\frac{n}{id}\rfloor) sum2(\lfloor\frac{n}{id}\rfloor)i^3d^3$

枚举$id$

$\sum_{T=1}^{n}\phi*\mu(T) T^3 \lfloor\frac{n}{T}\rfloor sum1(\lfloor\frac{n}{T}\rfloor) sum2(\lfloor\frac{n}{T}\rfloor)$

显然$\phi*\mu(T) T^3$是一个积性函数,我们可以把它线性筛出来

维护一下每个数的最小质因子及其最小质因子的指数就好了

后面显然可以分块,时间复杂度为$O(N+T\sqrt{n})$

code:

#include<algorithm>
#include<cstring>
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll; const int N=1e7+;
const int mo=1ll<<;
int cnt;
int prime[N],num[N],mi[N],f[N],sum[N];
bool vis[N];
inline int read()
{
char ch=getchar();int s=,f=;
while (ch<''||ch>'') {if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<='') {s=(s<<)+(s<<)+ch-'';ch=getchar();}
return s*f;
}
int qpow(int a,int b)
{
int re=;
for (;b;b>>=,a=a*a) if (b&) re=re*a;
return re;
}
ll phi(int p,int k)
{
if (!k) return ;
return 1ll*qpow(p,k-)*(p-);
}
void pre()
{
ll sum1=,sum2=;
for (int i=;i<N;i++)
{
sum1=(sum1+i)%mo;
sum2=(sum2+1ll*i*i%mo)%mo;
sum[i]=sum1*sum2%mo*i%mo;
}
f[]=;
for (int i=;i<N;i++)
{
if (!vis[i])
{
prime[++cnt]=i;
mi[i]=i;num[i]=;
f[i]=1ll*i*i%mo*i%mo*(i-)%mo;
}
for (int j=;j<=cnt&&prime[j]*i<N;j++)
{
vis[i*prime[j]]=;
mi[i*prime[j]]=prime[j];
if (mi[i]==prime[j]) num[i*prime[j]]=num[i]+;
else num[i*prime[j]]=;
if (i%prime[j]) f[i*prime[j]]=1ll*f[i]*f[prime[j]]%mo;
else
{
int q=qpow(prime[j],num[i*prime[j]]);
f[q]=1ll*(phi(prime[j],num[i*prime[j]])-phi(prime[j],num[i*prime[j]]-))*q%mo*q%mo*q%mo;
f[i*prime[j]]=1ll*f[i*prime[j]/q]*f[q]%mo;
break;
}
}
}
for (int i=;i<N;i++) f[i]=1ll*(f[i-]+f[i])%mo;
}
int main()
{
pre();
int T=read();
while (T--)
{
int n=read();
ll ans=;
for (int l=,r;l<=n;l=r+)
{
r=n/(n/l);
(ans+=1ll*(f[r]-f[l-])*sum[n/l]%mo)%mo;
}
printf("%lld\n",1ll*(ans+mo)%mo);
}
return ;
}

[计蒜客] tsy's number 解题报告 (莫比乌斯反演+数论分块)的更多相关文章

  1. 计蒜客31452 Supreme Number(找规律)

    A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...

  2. 计蒜客 31452 - Supreme Number - [简单数学][2018ICPC沈阳网络预赛K题]

    题目链接:https://nanti.jisuanke.com/t/31452 A prime number (or a prime) is a natural number greater than ...

  3. [jzoj 6084] [GDOI2019模拟2019.3.25] 礼物 [luogu 4916] 魔力环 解题报告(莫比乌斯反演+生成函数)

    题目链接: https://jzoj.net/senior/#main/show/6084 https://www.luogu.org/problemnew/show/P4916 题目: 题解: 注: ...

  4. [luogu P2586] GCD 解题报告 (莫比乌斯反演|欧拉函数)

    题目链接:https://www.luogu.org/problemnew/show/P2568#sub 题目大意: 计算​$\sum_{x=1}^n\sum_{y=1}^n [gcd(x,y)==p ...

  5. 计蒜客 A1607 UVALive 8512 [ACM-ICPC 2017 Asia Xi'an]XOR

    ICPC官网题面假的,要下载PDF,点了提交还找不到结果在哪看(我没找到),用VJ交还直接return 0;也能AC 计蒜客题面 这个好 Time limit 3000 ms OS Linux 题目来 ...

  6. 计蒜客:Entertainment Box

    Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...

  7. 计蒜客 31436 - 提高水平 - [状压DP]

    题目链接:https://nanti.jisuanke.com/t/31436 作为一名车手,为了提高自身的姿势水平,平时的练习是必不可少的.小 J 每天的训练包含 $N$ 个训练项目,他会按照某个顺 ...

  8. 计蒜客 31434 - 广场车神 - [DP+前缀和]

    题目链接:https://nanti.jisuanke.com/t/31434 小 D 是一位著名的车手,他热衷于在广场上飙车.每年儿童节过后,小 D 都会在广场上举行一场别样的车技大赛. 小 D 所 ...

  9. 【LeetCode】306. Additive Number 解题报告(Python)

    [LeetCode]306. Additive Number 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http: ...

随机推荐

  1. SSIS SQL Server配置自动作业

    目录: 一. 用SSMS配置作业,自助调度: 二.用SSMS调SSIS包: 一. 用SSMS配置作业,自助调度: 为验证数据,先创建一个表: CREATE TABLE test_table (id I ...

  2. 【Oracle】DBMS_STATS.GATHER_TABLE_STATS

    月初一直在忙保监会报送的事情,苦逼的保险行业的ETL大家都懂的.今天闲来无事查看了一下前阵子的报送存储过程,发现系统隔一段时间就会调用一次DBMS_STATS.GATHER_TABLE_STATS,所 ...

  3. i合拍应用客户端安卓项目源码

    i合拍是一款新型的拍照社交App它可以让你和朋友,亲人,陌生人合拍一张照片参与别人的合拍,体现自己的创意使用说明:使用了gpuimage进行滤镜渲染 实现远程合拍,分享合拍等一系列功能. 手机app下 ...

  4. LINQ to Entities 不识别方法“System.Nullable`1[System.Int32] DiffDays(System.Nullable`1[System.DateTime], System.Nullable`1[System.DateTime])”,因此该方法无法转换为存储表达式。

    解决方案: db.table.Where(m=>System.Data.Objects.EntityFunctions.DiffDays(m.CreateTime, DateTime.Now) ...

  5. 移动pc常用Meta标签

    移动常用 <meta charset="UTF-8"> <title>{$configInfos['store_title']}</title> ...

  6. Bootstrap 模态框(Modal)带参数传值实例

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 为了实现父窗体与其的交互,通常需要向其传值,实现 ...

  7. 在滑动3D模型(Cube)时,手指点击进入相应的某一部分

    public void OnClickRay() { Ray ray = new Ray(); RaycastHit shootHit; ray.origin = cameras.transform. ...

  8. jboss的下载安装、环境变量配置以及部署

    1. 下载安装 http://jbossas.jboss.org/downloads/   jdk为1.7 我下载的是:JBoss AS7.1.1.Final 2. 解压安装包  D:\program ...

  9. eas之单据转换规则

    /**  * BOTP单据转换  * @param botpNum 转换规则编号  * @param BillInfo 原单据  */ public static void BOTP(String b ...

  10. 关于 多个git用户或多个git管理工具切换时出现的问题总结

    在这几天遇到了个比较头痛的问题 因为在同时使用多个git工具(gitlab,github.gitee)由于账户的问题和这个仓库指定地址,导致拉代码和推代码不能正常运行 问题解决: 对于多个git直接的 ...