description

51nod

求$$\sum_{i=1}{n}\sum_{j=1}{n}sgcd(i,j)^k$$其中\(sgcd(i,j)\)表示\(i,j\)的次大公约数,如果\(gcd(i,j)=1\)那么\(sgcd(i,j)=0\)。

solution

记答案为\(Ans\)。

首先考虑直接枚举\(sgcd(i,j)\)。

\[Ans=\sum_{d=1}^{n}\xi^k(d)\sum_{i=1}^{n}\sum_{j=1}^n[gcd(i,j)==d]
\]

其中当\(n\not=1\)时\(\xi^k(n)=\frac{n}{p_{min}(n)}\)。

这个时候如果你像菜鸡fdf一样瞎反演出

\(\sum_{i=1}^{n}\sum_{j=1}^n[gcd(i,j)==d]=\sum_{t|d}\lfloor\frac{n}{t}\rfloor^2\mu(\frac{t}{d})\)就会变成这样

\[\begin{aligned}
Ans=&\sum_{d=1}^{n}\xi^k(d)\sum_{t|d}\lfloor\frac{n}{t}\rfloor^2\mu(\frac{t}{d}) \\
=&\sum_{t=1}^{n}\lfloor\frac{n}{t}\rfloor^2\sum_{t|d}\xi^k(d)\mu(\frac{t}{d}) \\
\end{aligned}
\]

假设我们对于前面数论分块,那么现在要求

\[\begin{aligned}
\sum_{i=1}^{n}\sum_{n|d}\xi^k(d)\mu(\frac{d}{n})=&\sum_{i=1}^{n}\xi^k(i)\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(j)\\
\end{aligned}
\]

你会发现这玩意又要数论分块一次。

然后菜鸡fdf就华丽地得到了一个\(O(n)\)的做法。O(n)可能也可以做

我们注意\(\sum_{i=1}^{n}\sum_{j=1}^n[gcd(i,j)==d]\)中\(i,j\)的上界都是\(n\)。

转化一下变成求

\[\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}[gcd(i,j)==1]=2\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\phi(i)-1
\]

这玩意不就是枚举其中一个数+去重么。

这应该是一个经典等式,然而我因为太菜没有做过。

于是原式变为

\[Ans=\sum_{d=1}^{n}\xi^k(d)(2\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\phi(i)-1)
\]

这样只要一次数论分块即可。

Code

我不管我不管我不会杜教筛只会暴力Min_25

#include<bits/stdc++.h>
#define FL "a"
using namespace std;
typedef unsigned int ll;
typedef long double dd;
const int N=1e5+10;
const int mod=1e9+7;
inline ll read(){
ll data=0,w=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')w=-1,ch=getchar();
while(ch<='9'&&ch>='0')data=data*10+ch-48,ch=getchar();
return data*w;
}
inline void file(){
freopen(FL".in","r",stdin);
freopen(FL".out","w",stdout);
} inline ll poww(ll a,ll b){
ll res=1;
for(;b;b>>=1,a*=a)
if(b&1)res*=a;
return res;
} int cnt;ll n,k,pri[N],pw[N][52],sum[N],sumk[N],s[52][52];bool vis[N];
inline void sieve(){
register int i,j;
for(vis[1]=1,i=2;i<N;i++){
if(!vis[i])pri[++cnt]=i;
for(j=1;j<=cnt&&i*pri[j]<N;j++){
vis[i*pri[j]]=1;if(i%pri[j]==0)break;
}
}
for(i=1;i<=cnt;i++)
for(j=pw[i][0]=1;j<=50;j++)pw[i][j]=pw[i][j-1]*pri[i];
for(i=1;i<=cnt;i++){
sum[i]=sum[i-1]+pri[i];
sumk[i]=sumk[i-1]+poww(pri[i],k);
}
s[0][0]=1;
for(i=0;i<=50;i++)
for(j=1;j<=i;j++)
s[i][j]=s[i-1][j-1]+j*s[i-1][j];
}
inline ll getsum(ll sn,ll sk){
register ll res=0,tmp,i,j;
for(i=0;i<=sk;i++){
tmp=1;
for(j=0;j<=i;j++)
if((sn-j+1)%(i+1)==0)tmp*=(sn-j+1)/(i+1);
else tmp*=(sn-j+1);
res+=s[sk][i]*tmp;
}
return res;
} ll w[N],g[N],xi[N],ps[N],phi[N];int sqr,tot,id1[N],id2[N];
#define ID(x) (x<=sqr?id1[x]:id2[n/(x)])
inline void Min25(){
register ll i,j,a,b,e,ans;
for(sqr=sqrt(n),tot=0,i=1;i<=n;i=j+1){
j=n/(n/i);w[++tot]=n/i;
w[tot]<=sqr?id1[w[tot]]=tot:id2[n/w[tot]]=tot;
} for(i=1;i<=tot;i++)g[i]=getsum(w[i],k)-1;
for(i=1;i<=cnt&&1ll*pri[i]*pri[i]<=n;i++)
for(j=1;1ll*pri[i]*pri[i]<=w[j];j++){
g[j]-=pw[i][k]*(g[ID(w[j]/pri[i])]-sumk[i-1]);
xi[j]+=g[ID(w[j]/pri[i])]-sumk[i-1];
} for(i=1;i<=tot;i++)g[i]=w[i]-1;
for(i=1;i<=cnt&&1ll*pri[i]*pri[i]<=n;i++)
for(j=1;1ll*pri[i]*pri[i]<=w[j];j++)
g[j]-=g[ID(w[j]/pri[i])]-i+1;
for(i=1;i<=tot;i++)ps[i]-=g[i],xi[i]+=g[i]; for(i=1;i<=tot;i++)g[i]=1ll*w[i]*(w[i]+1)/2-1;
for(i=1;i<=cnt&&1ll*pri[i]*pri[i]<=n;i++)
for(j=1;1ll*pri[i]*pri[i]<=w[j];j++)
g[j]-=pri[i]*(g[ID(w[j]/pri[i])]-sum[i-1]);
for(i=1;i<=tot;i++)ps[i]+=g[i]; for(i=cnt;i;i--)
if(1ll*pri[i]*pri[i]<=n)
for(j=1;1ll*pri[i]*pri[i]<=w[j];j++)
for(e=1,a=pri[i];1ll*a*pri[i]<=w[j];e++,a*=pri[i])
phi[j]+=(pw[i][e]-pw[i][e-1])*(phi[ID(w[j]/a)]+ps[ID(w[j]/a)]-(sum[i]-i))+(pw[i][e+1]-pw[i][e]);
for(i=1;i<=tot;i++)phi[i]+=ps[i]+1;
ans=0;
for(i=1;i<=n;i=j+1)
j=n/(n/i),ans+=(xi[ID(j)]-xi[ID(i-1)])*(2*phi[ID(n/i)]-1);
printf("%u\n",ans);
} int main()
{
n=read();k=read();sieve();Min25();
return 0;
}

[51nod1847]奇怪的数学题的更多相关文章

  1. 51nod1847 奇怪的数学题 (Min_25筛+第二类斯特林数)

    link \(\sum_{i=1}^n\sum_{j=1}^n\mathrm{sgcd}(i,j)^k=\sum_{p=1}^ns(p)^k\sum_{i=1}^n\sum_{j=1}^n[\gcd( ...

  2. 【51NOD 1847】奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数)

    [51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\( ...

  3. [51nod 1847]奇怪的数学题

    [ 51nod 1847 ]奇怪的数学题 题目   点这里看题目. 分析   是挺奇怪的......   以下定义质数集合为\(P\),\(p_i\)为第\(i\)个质数.   定义\(mp(x)\) ...

  4. 【51NOD1847】奇怪的数学题 min_25筛

    题目描述 记\(sgcd(i,j)\)为\(i,j\)的次大公约数. 给你\(n\),求 \[ \sum_{i=1}^n\sum_{j=1}^n{sgcd(i,j)}^k \] 对\(2^{32}\) ...

  5. 【51nod1847】 奇怪的数学题

    就当我是 A 了此题吧... 首先预备知识有点多(因为题目要处理的东西都挺毒瘤): 杜教筛运用(当然你可以用其他筛?) 第二类斯特林数相关定理 下降阶乘幂相关定理 min25 筛运用 好了可以关掉本题 ...

  6. 【51Nod1847】奇怪的数学题

    ​ 记\(f(x)=\)\(x\)的次大因数,那么\(sgcd(i,j)=f(gcd(i,j))\). 下面来推式子: \[ \begin{aligned} \sum_{i=1}^n\sum_{j=1 ...

  7. 51NOD1847:奇怪的数学题

    传送门 Sol 设 \(f(d)\) 表示 \(d\) 所有约数中第二大的,\(low_d\) 表示 \(d\) 的最小质因子 \[f(d)=\frac{d}{low_d}\] 那么 \[\sum_{ ...

  8. 【51nod1847】奇怪的数学题(Min_25筛+杜教筛)

    题面 传送门 题解 这题有毒--不知为啥的错误调了半天-- 令\(f(i)={sgcd(i)}\),那么容易看出\(f(i)\)就是\(i\)的次大质因子,用\(i\)除以它的最小质因子即可计算 于是 ...

  9. 【51nod 1847】奇怪的数学题

    题目描述 给出 N,K ,请计算下面这个式子: \(∑_{i=1}^N∑_{j=1}^Nsgcd(i,j)^k\) 其中,sgcd(i, j)表示(i, j)的所有公约数中第二大的,特殊地,如果gcd ...

随机推荐

  1. TeamViewer卡在正在初始化显示参数

    在windows的mstsc远程桌面中打开teamviewer,远程桌面开着的时候可以连接teamviewer,但是当我断开mstsc之后,再用teamviewer连就连接不上了,一直都是正在初始化显 ...

  2. python2 - 列表

    列表 a = [1,2,3,4,5,6,7] a[0:4:1]//正向索引 a[-1:-2:-1]//反向索引 列表添加 a = [1, 2] b = [3, 4] +:a + b//把a和b连接,重 ...

  3. 图 -数据结构(C语言实现)

    读数据结构与算法分析 坑!待填! 若干定义 一个图G = (V , E)由顶点集V和边集E组成,每条边就是一个点对 如果点对是有序的,那么就叫做有向图 边可能还具有第三种成分,权值 无向图种从每个顶点 ...

  4. VPS挂机赚美刀详细介绍–Alexamaster操作流程

    跟 vps 主机打交道时间长了,手里也渐渐积累了些闲置的 vps.让它们这么闲着吧,感觉有些浪费资源:用起来吧,暂时又没有好的项目.一直听说通过 vps挂机可以赚回主机成本,甚至可以盈利.正好这两天有 ...

  5. 最短路径算法(I)

    弗洛伊德算法(Floyed-Warshall) 适用范围及时间复杂度 该算法的时间复杂度为O(N^3),适用于出现负边权的情况. 可以求取最短路径或判断路径是否连通.可用于求最小环,比较两点之间的大小 ...

  6. python3【基础】-装饰器

    要理解充分理解python的装饰器,有充分理解下述三个知识点为前提: python作用域规则 函数即对象 闭包 一.python作用域规则: 首先介绍python中的作用域规则.python的作用域规 ...

  7. JavaScript变态题目

    刚才发现的一些变态的 JavaScript 题目,做了一下,只对了一半,特此发到园子里,和友友们分享一下.这些题目都是针对 Ecmascript 第三版的,原题里面全部都是选择题,有备选答案,这里我把 ...

  8. ionic 开发实例

    ionic 开发实例 一.ionic初始化项目 1:安装ionic npm install -g ionic 2:初始化项目框架 我们可以用命令创建一个应用程序,可以使用我们的一个现成的应用程序模板, ...

  9. 互评Alpha版本——杨老师粉丝群——Pinball

    一.基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题 (1)N(Need,需求) 成语学习对除汉语言专业外的大学生的需求并不是很高,初中生和高中生因为在升学时需要参加语文 ...

  10. MySQL的课堂的实践

    MySQL的课堂的实践 基本认识 如今的数据库有几种是主流,分别是:Oracle Database.Informix.SQL Server.PostgreSQL.MySQL等,我们现在学习的MySQL ...