[题目链接] https://www.luogu.org/problemnew/show/P4213

给定一个正整数\(N(N\le2^{31}-1)\)

\(ans_1=\sum_{i=1}^n\varphi(i)\)

\(ans_2=\sum_{i=1}^n \mu(i)\)

[题解] https://acfcacfca.blog.luogu.org/dls-tql

// luogu-judger-enable-o2
#include<bits/stdc++.h>
#include<tr1/unordered_map>
//#define int long long
using namespace std;
typedef long long LL;
const int INF=1e9+7;
inline LL read(){
register LL x=0,f=1;register char c=getchar();
while(c<48||c>57){if(c=='-')f=-1;c=getchar();}
while(c>=48&&c<=57)x=(x<<3)+(x<<1)+(c&15),c=getchar();
return f*x;
} const int MAXN=5e6+5; LL mu[MAXN];LL phi[MAXN];
int prime[MAXN];bool vis[MAXN];
unordered_map <int,LL> Smu,Sphi;
int n,T; inline void init(int n){
mu[1]=1,phi[1]=1;
for(int i=2;i<=n;i++){
if(!vis[i]){
prime[++prime[0]]=i;
mu[i]=-1;
phi[i]=i-1;
}
int x;
for(int j=1;j<=prime[0]&&(x=(i*prime[j]))<=n;j++){
vis[x]=1;
if(i%prime[j]==0){
mu[x]=0;
phi[x]=1ll*phi[i]*prime[j];
break;
}
mu[x]=-mu[i];
phi[x]=1ll*phi[i]*phi[prime[j]];
}
}
for(int i=2;i<=n;i++)
mu[i]+=mu[i-1],phi[i]+=phi[i-1];
} inline LL S_mu(int x){
if(x<MAXN) return mu[x];
if(Smu[x]) return Smu[x];
LL res=1;
for(int l=2,r;l<=x;l=r+1){
r=x/(x/l);
res-=1ll*(r-l+1)*S_mu(x/l);
}
return Smu[x]=res;
} inline LL S_phi(int x){
if(x<MAXN) return phi[x];
if(Sphi[x]) return Sphi[x];
LL res=1LL*x*(x+1)/2;//对int敏感!!
for(int l=2,r;l<=x;l=r+1){
r=x/(x/l);
res-=1LL*(r-l+1)*S_phi(x/l);
}
return Sphi[x]=res;
} signed main(){
T=read();
init(MAXN-1);
while(T--){
n=read();
printf("%lld %lld\n",S_phi(n),S_mu(n));
}
}

P4213 【模板】杜教筛的更多相关文章

  1. luoguP4213 [模板]杜教筛

    https://www.luogu.org/problemnew/show/P4213 同 bzoj3944 考虑用杜教筛求出莫比乌斯函数前缀和,第二问随便过,第一问用莫比乌斯反演来做,中间的整除分块 ...

  2. [模板] 杜教筛 && bzoj3944-Sum

    杜教筛 浅谈一类积性函数的前缀和 - skywalkert's space - CSDN博客 杜教筛可以在\(O(n^{\frac 23})\)的时间复杂度内利用卷积求出一些积性函数的前缀和. 算法 ...

  3. 洛谷P4213 Sum(杜教筛)

    题目描述 给定一个正整数N(N\le2^{31}-1)N(N≤231−1) 求ans_1=\sum_{i=1}^n\phi(i),ans_2=\sum_{i=1}^n \mu(i)ans1​=∑i=1 ...

  4. 洛谷P4213(杜教筛)

    #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 3e6 + 3; ...

  5. LG4213 【模板】杜教筛(Sum)和 BZOJ4916 神犇和蒟蒻

    P4213 [模板]杜教筛(Sum) 题目描述 给定一个正整数$N(N\le2^{31}-1)$ 求 $$ans_1=\sum_{i=1}^n\varphi(i)$$ $$ans_2=\sum_{i= ...

  6. p4213 【模板】杜教筛(Sum)

    传送门 分析 我们知道 $\varphi * 1 = id$ $\mu * 1 = e$ 杜教筛即可 代码 #include<iostream> #include<cstdio> ...

  7. P4213 【模板】杜教筛(Sum)

    \(\color{#0066ff}{题 目 描 述}\) 给定一个正整数\(N(N\le2^{31}-1)\) 求 \(\begin{aligned} ans_1=\sum_{i=1}^n\varph ...

  8. [洛谷P4213]【模板】杜教筛(Sum)

    题目大意:给你$n$,求:$$\sum\limits_{i=1}^n\varphi(i),\sum\limits_{i=1}^n\mu(i)$$最多$10$组数据,$n\leqslant2^{31}- ...

  9. P4213【模板】杜教筛(Sum)

    思路:杜教筛 提交:\(2\)次 错因:\(\varphi(i)\)的前缀和用\(int\)存的 题解: 对于一类筛积性函数前缀和的问题,杜教筛可以以低于线性的时间复杂度来解决问题. 先要构造\(h= ...

  10. BZOJ3944: Sum(杜教筛模板)

    BZOJ3944: Sum(杜教筛模板) 题面描述 传送门 题目分析 求\(\sum_{i=1}^{n}\mu(i)\)和\(\sum_{i=1}^{n}\varphi(i)\) 数据范围线性不可做. ...

随机推荐

  1. ie6下会拒绝高度小于字号的设置

    <div style="height: 5px;background-color: yellow">wojitianhenkaixin</div> 此时浏览 ...

  2. css知多少(10)——display(转)

    css知多少(10)——display   1. 引言 网页的所有元素,除了“块”就是“流”,而且“流”都是包含在“块”里面的(最外层的body就是一个“块”).在本系列一开始讲<浏览器默认样式 ...

  3. Python_pip_02_利用pip安装模块(以安装pyperclip为例)

    >任务:利用pip安装pyperclip模块 >前提 你已经在你的电脑里面安装啦Python2.7的Windows版本,并且已经配置了环境变量 >实现步骤 >>打开你的P ...

  4. g2o20160430下的csparse文件夹内的CMakeLists.txt

    1. g2o20160430下的csparse文件夹内的CMakeLists.txt cmake_minimum_required(VERSION 2.6) PROJECT(csparse) SET( ...

  5. 数字图像处理实验(6):PROJECT 04-02,Fourier Spectrum and Average Value 标签: 图像处理MATLABfft 2017-05-07 23:1

    实验要求: Objective: To observe the Fourier spectrum by FFT and the average value of an image. Main requ ...

  6. LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

    reinterpret_cast代表强制转化,即把pNMHDR强制转化成LPNMITEMACTIVATE类型的. reinterpret_cast<type-id> (expression ...

  7. Luogu 4514 上帝造题的七分钟

    二维差分+树状数组. 定义差分数组$d_{i, j} = a_{i, j} + a_{i - 1, j - 1} - a_{i, j - 1} - a_{i - 1, j}$,有$a_{i, j} = ...

  8. Jtabbedpane设置透明、Jpanel设置透明

    摘自 https://zhidao.baidu.com/question/983204331427010139.html java中如何设置Jtabbedpane为透明 20 在Jtabbedpane ...

  9. [译]Javascript中的函数

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  10. Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次解决方法

    用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录 修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会 ...