题解

显然有 \(ans=\sum _{i=1} ^{n} \lfloor \frac{n}{i} \rfloor \sum _{d|i} \mu(d) \phi (\frac{i}{d})\)

前半部分就是个整除分块,后半部分直接让脑子受到了冲击。

但是,我们知道,两个积性函数的\(\text{Direchlet}\)卷积还是积性函数,我们考虑构造线性筛。

我们看到其中有\(\text{Mobius}\)函数,鲁迅曾经说过“一看到\(\mu\),就想到积性函数,就想到唯一分解,就想到\(>2\)的幂的贡献不计,就想到线性筛,\(\text{OIer}\)只有在这个方面思想如此跃进。”

我们尝试对一个数\(T\)因数分解。

设\(h(x)=\sum _{d|x} \mu(d) \phi (\frac{i}{d})\)对于其中一个素因子\(p\)和他的出现次数\(q\),\(x=p^q\)我们发现

\(h(x)=1,q=0\)

\(h(x)=p-2,q=1\)

\(h(x)=p^{q-2}(p-1)^2,q>=2\)

显然$h(T)=\prod _{i=1}^{t} h(p_i^{q_i}) $我们根据这个构造线性筛

#include<cstdio>
typedef long long ll;
const int maxn = 1e7+10;
ll h[maxn];
int prime[maxn],cnt,n;
bool vis[maxn];
inline void prelude() {
h[1]=1;
for(int i = 2;i<maxn;++i) {
if(!vis[i]) {
h[i]=i-2;
prime[++cnt]=i;
}
for(int j = 1;j<=cnt&&1LL*prime[j]*i<maxn;++j) {
vis[i*prime[j]]=1;
if(i%prime[j]==0) {
if(i/prime[j]%prime[j]==0) {
h[i*prime[j]]=h[i]*prime[j];// 三次方及以上
}
else h[i*prime[j]]=h[i/prime[j]]*(prime[j]-1)*(prime[j]-1); //二次方,分界点
break;
}
else {
h[i*prime[j]]=h[i]*h[prime[j]];
}
}
}
for(int i = 1;i<maxn;++i) h[i]+=h[i-1];
}
inline ll solve() {
ll ans = 0;
for(int i = 1,cur;i<=n;i=cur+1) {
cur = n/(n/i);
ans+=(h[cur]-h[i-1])*(n/i)*(n/i);
}
return ans;
}
int main() {
prelude();
int T;
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
printf("%lld\n",solve());
}
return 0;
}

【文文殿下】【BZOJ4804】欧拉心算的更多相关文章

  1. BZOJ4804 欧拉心算(莫比乌斯反演+欧拉函数+线性筛)

    一通套路后得Σφ(d)μ(D/d)⌊n/D⌋2.显然整除分块,问题在于怎么快速计算φ和μ的狄利克雷卷积.积性函数的卷积还是积性函数,那么线性筛即可.因为μ(pc)=0 (c>=2),所以f(pc ...

  2. [BZOJ4804]欧拉心算

    题面戳我 题意:求 \[\sum_{i=1}^{n}\sum_{j=1}^{n}\phi(\gcd(i,j))\] 多组数据,\(n\le10^7\). sol SBT 单组数据\(O(\sqrt n ...

  3. BZOJ4804: 欧拉心算(莫比乌斯反演 线性筛)

    题意 求$$\sum_1^n \sum_1^n \phi(gcd(i, j))$$ $T \leqslant 5000, N \leqslant 10^7$ Sol 延用BZOJ4407的做法 化到最 ...

  4. bzoj4804: 欧拉心算 欧拉筛

    题意:求\(\sum_{i=1}^n\sum_{j=1}^n\phi(gcd(i,j))\) 题解:\(\sum_{i==1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)== ...

  5. 并不对劲的bzoj4804:欧拉心算

    题目大意 \(t\)(\(t\leq5000\))组询问,每次询问给出\(n\)(\(n\leq10^7\)),求: \[\sum_{i=1}^{n}\sum_{j=1}^{n}\phi(gcd(i, ...

  6. [BZOJ4804]欧拉心算:线性筛+莫比乌斯反演

    分析 关于这道题套路到不能再套路了没什么好说的,其实发这篇博客的目的只是为了贴一个线性筛的模板. 代码 #include <bits/stdc++.h> #define rin(i,a,b ...

  7. 【bzoj4804】欧拉心算 解题报告

    [bzoj4804]欧拉心算 Description 给出一个数字\(N\),计算 \[\sum_{i=1}^n\sum_{j=1}^n \varphi(\gcd(i,j))\] Input 第一行为 ...

  8. 【BZOJ4804】欧拉心算 莫比乌斯反演+线性筛

    [BZOJ4804]欧拉心算 Description 给出一个数字N Input 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N<=10 ...

  9. BZOJ_4804_欧拉心算_欧拉函数

    BZOJ_4804_欧拉心算_欧拉函数 Description 给出一个数字N Input 第一行为一个正整数T,表示数据组数. 接下来T行为询问,每行包含一个正整数N. T<=5000,N&l ...

  10. bzoj 4804 欧拉心算 欧拉函数,莫比乌斯

    欧拉心算 Time Limit: 15 Sec  Memory Limit: 256 MBSubmit: 408  Solved: 244[Submit][Status][Discuss] Descr ...

随机推荐

  1. 如何在ecplise中配置maven以及ecplise访问本地仓库

    1.m2e的插件 因为使用ecplise版本比较高,所以它自带了maven的插件,但是我们希望可以使用我们自己指定的maven.配置步骤如下: ecplise--->preperences下,点 ...

  2. IIS文件名解析漏洞扼要分析

    概括: 从技术角度分析IIS6文件名解析漏洞的原理与IIS7的相关情况. a.IIS6错误解析文件类型现象 1.当WEB目录下,文件名以 xxx.asp;xxx.xxx 来进行命名的时候,此文件将送交 ...

  3. loadrunner12-查看controller运行报错详细log

    1.路径为controller-->results-->results setting 2.打开文件夹res/log/***.log,里面会有当前场景运行的log日志. 注:启用这个首先保 ...

  4. 首页焦点图myFocus插件

    首页焦点图myFocus插件   myFocus特性 小巧却高效强大 myFocus v2.0.min版只有9.89KB,却能使你的网页上可以运行超过30款风格各异的焦点图,在互联网独一无二哦~ 极其 ...

  5. PTA第一次作业和第二次作业

    PTA的第一次作业第一题: #include <stdio.h> int main (void) { int grade,i,N ,a=0,b=0,c=0,d=0,e=0; printf( ...

  6. 使用delphi 开发多层应用(十九) ios通过soap 访问kbmmw服务器

    随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此 无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提 ...

  7. c语言中几个常见的库函数strlen、strcmp、strcat、strcpy、strncpy、memset、memcpy、memmove、mmap

    1.strlen() 1)计算给定字符串的长度,不包括’\0’在内 unsigned int strlen(const char *s) { assert(NULL != s);//如果条件不满足,则 ...

  8. Spinner功能和用法

    书中只是简单写了选择的界面,没有写出选择之后的结果显示,我做了进一步功能. MainActivity.java public class MainActivity extends Activity { ...

  9. cmake-include_directories

    include_directories: Add include directories to the build. include_directories([AFTER|BEFORE] [SYSTE ...

  10. 【翻译】追溯“typeof null”的历史

    我的翻译小站:https://www.zcfy.cc/article/the-history-of-typeof-null 翻译原文链接:http://2ality.com/2013/10/typeo ...