#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn=1e7+;
bool vis[maxn];
int prime[maxn];
int mu[maxn];
int sum1[maxn];
int sum2[maxn];
int tot=;
void get_mu()// mo bi su si han shu
{
mu[]=; vis[]=;
for(int i=;i<maxn;i++) // prime = 0; other = 1;
{
if(!vis[i]){ prime[++tot]=i; mu[i]=-;}
for(int j=;j<=tot&& prime[j]*i<maxn;j++)
{
vis[prime[j]*i]=;
if(i%prime[j]==)break;
mu[i*prime[j]]=-mu[i];
}
}
for(int i=;i<=tot;i++)
{
for(int j=prime[i];j<maxn;j+=prime[i])
{
sum1[j]+=mu[j/prime[i]];
}
}
//for(int i=1;i<maxn;i++) sum2[i]=sum2[i-1]+sum1[i];
}
int main()
{
get_mu();
int n; cin>>n;
LL ans=;
for(int i=;i<=n;i++)
{
ans+=1LL*(n/i)*(n/i)*sum1[i];
}
cout<<ans<<endl;
}

过度代码

整除分块  (看起来更麻烦)

#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn=1e7+;
bool vis[maxn];
int prime[maxn];
int mu[maxn];
int sum1[maxn];
int sum2[maxn];
int tot=;
void get_mu()// mo bi su si han shu
{
mu[]=; vis[]=;
for(int i=;i<maxn;i++) // prime = 0; other = 1;
{
if(!vis[i]){ prime[++tot]=i; mu[i]=-;}
for(int j=;j<=tot&& prime[j]*i<maxn;j++)
{
vis[prime[j]*i]=;
if(i%prime[j]==)break;
mu[i*prime[j]]=-mu[i];
}
}
for(int i=;i<=tot;i++)
{
for(int j=prime[i];j<maxn;j+=prime[i])
{
sum1[j]+=mu[j/prime[i]];
}
}
for(int i=;i<maxn;i++) sum2[i]=sum2[i-]+sum1[i];
}
int main()
{
get_mu();
int n; cin>>n;
LL ans=;
//for(int i=1;i<=n;i++) ans+=1LL*(n/i)*(n/i)*sum1[i];
for(int l=,r;l<=n;l=r+)
{
r=n/(n/l); // l-r 区间相同值 区间值n/l
ans+=1LL*(n/l)*(n/l)*(sum2[r]-sum2[l-]);
}
cout<<ans<<endl;
}

P2568 莫比乌斯反演+整除分块的更多相关文章

  1. [P4450] 双亲数 - 莫比乌斯反演,整除分块

    模板题-- \[\sum\limits_{i=1}^a\sum\limits_{j=1}^b[(i,j)=k] = \sum\limits_{i=1}^a\sum\limits_{j=1}^b[k|i ...

  2. Bzoj1101: [POI2007]Zap 莫比乌斯反演+整除分块

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 莫比乌斯反演 1101: [POI2007]Zap 设 \(f(i)\) 表示 \(( ...

  3. 莫比乌斯反演&整除分块学习笔记

    整除分块 用于计算$\sum_{i=1}^n f(\lfloor{n/i} \rfloor)*i$之类的函数 整除的话其实很多函数值是一样的,对于每一块一样的商集中处理即可 若一个商的左边界为l,则右 ...

  4. 洛谷 P2257 - YY的GCD(莫比乌斯反演+整除分块)

    题面传送门 题意: 求满足 \(1 \leq x \leq n\),\(1 \leq y \leq m\),\(\gcd(x,y)\) 为质数的数对 \((x,y)\) 的个数. \(T\) 组询问. ...

  5. [POI2007]ZAP-Queries (莫比乌斯反演+整除分块)

    [POI2007]ZAP-Queries \(solution:\) 唉,数论实在有点烂了,昨天还会的,今天就不会了,周末刚证明的,今天全忘了,还不如早点写好题解. 这题首先我们可以列出来答案就是: ...

  6. 洛谷 - P2257 - YY的GCD - 莫比乌斯反演 - 整除分块

    https://www.luogu.org/problemnew/show/P2257 求 \(n,m\) 中 \(gcd(i,j)==p\) 的数对的个数 求 $\sum\limits_p \sum ...

  7. [国家集训队] Crash的数字表格 - 莫比乌斯反演,整除分块

    考虑到\(lcm(i,j)=\frac{ij}{gcd(i,j)}\) \(\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{gcd(i,j)}\) \(\sum_{d=1}^{n} ...

  8. 洛谷 P5518 - [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题(莫比乌斯反演+整除分块)

    洛谷题面传送门 一道究极恶心的毒瘤六合一题,式子推了我满满两面 A4 纸-- 首先我们可以将式子拆成: \[ans=\prod\limits_{i=1}^A\prod\limits_{j=1}^B\p ...

  9. 洛谷 - UVA11424 - GCD - Extreme (I) - 莫比乌斯反演 - 整除分块

    https://www.luogu.org/problemnew/show/UVA11424 原本以为是一道四倍经验题来的. 因为输入的n很多导致像之前那样 \(O(n)\) 计算变得非常荒谬. 那么 ...

随机推荐

  1. winfrom程序Datagridview列名问题

    之前在做程序的时候,有遇到过这个问题: 无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColume"解决方法 解决办法 ...

  2. 活代码LINQ——04

    一.主模块代码: 'Fig.4.16:GradeBookTest.vb 'Create and manipulate a GradeBook object;illustrate validation ...

  3. linux驱动由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)

    转自:http://blog.csdn.net/radianceblau/article/details/73229005 http://www.aiuxian.com/article/p-14142 ...

  4. 【转】git - 简易指南

    原文链接:http://www.bootcss.com/p/git-guide/ 作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics 其他语言 english, deutsch ...

  5. Problem A: 重载字符的加减法

    Description 定义一个字符类Character,只有一个char类型的数据成员. 重载它的+.-.<<和>>运算符,其中+.-的第二个操作数是int类型的整数n.“+ ...

  6. SharePoint Framework 基于团队的开发(二)

    博客地址:http://blog.csdn.net/FoxDave 本篇介绍SPFx项目的一般开发流程.SharePoint Framework基于开源的工具链,也遵循开源技术栈中其他项目的开发流程. ...

  7. 安装oracle数据库的操作步骤

    1. vnc启动之后,进入数据库安装包所在目录,此处是/home/DB/backup/database 2. 输入命令 ./runInstaller 3. 弹出linux图形化界面,同时弹出Oracl ...

  8. SpringBoot项目如何打War包

    首先,需要添加Tomcat启动依赖 <dependency> <groupId>org.springframework.boot</groupId> <art ...

  9. sdn学习-1(概念:Underlay网络和Overlay网络)

    随着云计算.大数据.移动互联网等新技术的普及,部署大量虚拟机成为一种必然趋势.解决这些虚拟机迁移问题理想的方案是在传统单层网络(Underlay)基础上叠加(Overlay)一层逻辑网络,将网络分成两 ...

  10. [转载] Fiddler为所欲为第二篇 像OD一样调试 [二]

    首先,如果大家没有看过第一篇,可以先看看第一篇,了解Fiddler script的脚本哦.传送门:https://www.52pojie.cn/thread-854434-1-1.html 导语:其实 ...