\[求\sum_{i=1}^{n}(\sqrt[3]i,i)\\
首先转化一下这个式子,考虑对于i\in[j^3,(j+1)^3-1],\sqrt[3]i=j\\
所以可以枚举所有j,然后对i\in[j^3,(j+1)^3-1]区间的(i,j)求和即可
那么我们把n分成两部分,分别求和:\\
\sum_{i=1}^{n}(\sqrt[3]i,i)=\sum_{i={\lfloor \sqrt[3]n\rfloor}^3}^{n}(\sqrt[3]n,n)
+\sum_{j=1}^{\sqrt[3]n-1}\sum_{i=j^3}^{(j+1)^3-1}(i,j)\\
\]

\[先来看前面一个合式\sum_{i={\lfloor \sqrt[3]n\rfloor}^3}^{n}(\sqrt[3]n,i),直接用欧拉替换式\\
原式=\sum_{i={\lfloor \sqrt[3]n\rfloor}^3}^{n}\ \sum_{d|i,d|{\lfloor \sqrt[3]n\rfloor}}\varphi(d)
=\sum_{d|{\lfloor \sqrt[3]n\rfloor}}\varphi(d)\big(n/d-(\lfloor \sqrt[3]n\rfloor-1)/d \big)\\
{\lfloor \sqrt[3]n\rfloor}因子是不多的,只有\sqrt[6]n个,所以复杂度也是这个
\]

\[再看后面一个合式,我们可以将其转化后用反演来快速求和\\
\sum_{j=1}^{\sqrt[3]n-1}\sum_{i=j^3}^{(j+1)^3-1}(i,j)
=\sum_{j=1}^{\sqrt[3]n-1}\bigg(\sum_{i=1}^{(j+1)^3-1}(i,j)-\sum_{i=1}^{j^3-1}(i,j) \bigg)\\
现在来求\sum_{j=1}^{\sqrt[3]n-1}\sum_{i=1}^{f(j)}(i,j),其实可以把(i,j)展开做,但是考虑到欧拉替换\\
原式=\sum_{j=1}^{\sqrt[3]n-1}\sum_{i=1}^{f(j)}\sum_{d|i,d|j}\varphi(d)
=\sum_{j=1}^{\sqrt[3]n-1}\sum_{d|j}\varphi(d)\frac{f(j)}{d} \\
注意因为i的上界是和j有关的,所以切换枚举次序时只能把d切换到i前,不能切换到j前,否则无法正确求出\varphi(d)出现次数\\
原式=\sum_{j=1}^{\sqrt[3]n-1}\sum_{d|j}\varphi(d)\bigg(\lfloor \frac{(j+1)^3-1}{d}\rfloor-\lfloor \frac{j^3-1}{d}\rfloor \bigg) \ 显然有j=kd,所以不妨外层枚举d\\
原式=\sum_{d=1}^{N=\sqrt[3]n-1}\varphi(d)\sum_{k=1}^{\frac{N}{d}}(3k^2d+3k+1)
=\sum_{d=1}^{N=\sqrt[3]n-1}\varphi(d)(3d\sum_{k=1}^{\frac{N}{d}}k^2+3\sum_{k=1}^{\frac{N}{d}}k+\frac{N}{d})
\\
到此为止,我们可以预处理[1,1e7]范围的k^2,k的前缀和,\varphi(i)的值,就可以O(1)求每个d的值
\]

#include <bits/stdc++.h>
const int N=1e7,XN=N+11,P=998244353;
int Add(int x,int const &y) {return (x+=y)>=P?x-P:x;}
int Minus(int x,int const &y) {return (x-=y)<0?x+P:x;}
int Mul(long long x,int const &y) {return x*y%P;}
int prime[XN],phi[XN],pcnt;
void Prep() {
static bool notPrime[XN];
phi[1]=1;
for(int i=2;i<=N;++i) {
if(!notPrime[i]) {
prime[++pcnt]=i;
phi[i]=i-1;
}
for(int j=1;j<=pcnt && i*prime[j]<=N;++j) {
notPrime[i*prime[j]]=1;
if(i%prime[j]==0) {
phi[i*prime[j]]=phi[i]*prime[j];
break;
} else
phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
}
} int Sum1(long long x) {return x*(x+1)/2%P;}
int Sum2(long long x) {return (x*(x+1))%(6ll*P)*(2*x+1)/6%P;}
int Calc(int a,__int128 L,__int128 R) {
int res=0;
for(int d=1;1LL*d*d<=a;++d)
if(a%d==0) {
res=Add(res,Mul((R/d-L/d)%P,phi[d]));
if(a!=d*d)
res=Add(res,Mul((R/(a/d)-L/(a/d))%P,phi[a/d]));
}
return res;
} int main() {
Prep();int T;fin>>T;
while(T--) {
__int128 n;fin>>n;
if(n<=7) {fout<<n<<'\n';}
else {
int r;for(r=1;(__int128)(r+2)*(r+2)*(r+2)-1<=n;++r);
int Ans=Calc(r+1,(__int128)(r+1)*(r+1)*(r+1)-1,n);
for(int T=1;T<=r;++T)
Ans=Add(Ans,Mul(phi[T],Add(Add(Mul(3*T,Sum2(r/T)),Mul(3,Sum1(r/T))),r/T)));
fout<<Ans<<'\n';
}
}
}

欧拉函数+反演——2019hdu多校6588的更多相关文章

  1. UVa 10214 (莫比乌斯反演 or 欧拉函数) Trees in a Wood.

    题意: 这道题和POJ 3090很相似,求|x|≤a,|y|≤b 中站在原点可见的整点的个数K,所有的整点个数为N(除去原点),求K/N 分析: 坐标轴上有四个可见的点,因为每个象限可见的点数都是一样 ...

  2. 【luogu3768】简单的数学题 欧拉函数(欧拉反演)+杜教筛

    题目描述 给出 $n$ 和 $p$ ,求 $(\sum\limits_{i=1}^n\sum\limits_{j=1}^nij\gcd(i,j))\mod p$ . $n\le 10^{10}$ . ...

  3. HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. 【bzoj3518】点组计数 欧拉函数(欧拉反演)

    题目描述 平面上摆放着一个n*m的点阵(下图所示是一个3*4的点阵).Curimit想知道有多少三点组(a,b,c)满足以a,b,c三点共线.这里a,b,c是不同的3个点,其顺序无关紧要.(即(a,b ...

  5. UVA11426 GCD - Extreme (II) (欧拉函数/莫比乌斯反演)

    UVA11426 GCD - Extreme (II) 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 10 100 200000 0 输出样例#1: 67 13 ...

  6. 洛谷P2568 GCD (欧拉函数/莫比乌斯反演)

    P2568 GCD 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入 ...

  7. 【BZOJ2226】[Spoj 5971] LCMSum 莫比乌斯反演(欧拉函数?)

    [BZOJ2226][Spoj 5971] LCMSum Description Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n ...

  8. ACM学习历程—HYSBZ 2818 Gcd(欧拉函数 || 莫比乌斯反演)

    Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sam ...

  9. 洛谷 - P1390 - 公约数的和 - 莫比乌斯反演 - 欧拉函数

    https://www.luogu.org/problemnew/show/P1390 求 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} gcd(i,j) $ ...

随机推荐

  1. koa2 的处理请求体koa-bodyparser koa-router 的中间件的学习

    1.官网 https://www.npmjs.com/package/koa-router https://www.npmjs.com/package/koa-bodyparser 2. demo / ...

  2. 浅谈异步上传插件 jquery-file-upload插件

    当我们需要异步上传文件的时候,我们倾向于在网上查找相关的JQuery插件,jquery-file-upload就是我们经常看到的,但是他的主页是英文的,对于我们这些英语比较差的同学来说,简直就是... ...

  3. spring 结合 redis 例子 (转)

    好了费话不多说了,介绍下spring 结合redis是怎么操作数据的 这里我用了maven管理,由于简单嘛,依赖下包就行了..不用单独去依赖包,成了我的习惯 好了,下面是pom的代码 <proj ...

  4. python 获取淘宝商品信息

    python cookie 获取淘宝商品信息 # //get_goods_from_taobao import requests import re import xlsxwriter cok='' ...

  5. leetcode-12双周赛-1244-力扣排行榜

    题目描述: class Leaderboard: def __init__(self): self.map = collections.Counter() def addScore(self, pla ...

  6. vmware下搭建openwrt

    最近闲来无事,想研究下openwrt, 所以尝试着自己搭建一个来玩玩, 当然这里不是以源码编译的形式,那样太耗时. 首先官网下载已有的系统image,  路径如下 : https://archive. ...

  7. read more阅读更多,文字超过三行字符后面添加省略号

    var text;$('.blog-item').each(function (i) {text = $(this).find('.blog-excerpt').html();if (text.len ...

  8. vue笔记一:设置表头的背景颜色以及下边框颜色

    最近做的一个项目有个小小的需求,就是把表头的背景颜色改为黑色,表格边框颜色改为这个颜色,中间出了些问题,因为vue的表格样式是内联样式,一修改就影响到其他地方的表格样式,尽管我单独加了id还是不行,经 ...

  9. 使用Nodejs 的http-proxy 模块做代理服务器的尝试

    参考 : https://blog.csdn.net/zhihuoqian9683/article/details/78944482  (亲测可行) http://www.mizuiren.com/4 ...

  10. centos7下命令行配置nginx

    本教程中的步骤要求用户拥有root权限 第一步 - 添加Nginx存储库要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令: sudo yum install epel-release第二 ...