bzoj2818: Gcd懵逼乌斯反演
2024-08-30 10:52:58
由于是单组数据,强行不分块O(n)过
线性筛部分非常神奇,用了一个奇妙的推导(懒得写了)
#include <bits/stdc++.h>
using namespace std;
int n,m,mu[],f[],p[];bool o[];
int main()
{
scanf("%d",&n);
mu[]=;
for(int i=;i<=n;i++)
{
if(!o[i]) p[++m]=i,mu[i]=-,f[i]=;
for(int j=;j<=m;j++)
if((long long)p[j]*i<=(long long)n)
{
o[p[j]*i]=;
if(i%p[j]==) f[p[j]*i]=mu[i];
else f[p[j]*i]=mu[i]-f[i];
if(i%p[j]==) break;
mu[i*p[j]]=-mu[i];
}
else break;
}
long long ret=;
for(int i=;i<=n;i++)
ret+=(long long)(n/i)*(n/i)*f[i];
printf("%lld\n",ret);
return ;
}
最新文章
- 如何开发FineReport的自定义控件?
- UVA数学入门训练Round1[6]
- stm32 MDK5软件仿真之查看io口输出
- (转)C# Winform应用程序占用内存较大解决方法整理
- JAVA之多线程的创建
- Linux 网络相关命令
- sql server经典sql
- 【转】java中byte, int的转换, byte String转换
- Kubernetes 1.4 部署
- C语言之强化,弱化符号weak
- 3D旋转动画练习 demo
- Numpy数组索引为-1和None
- 勤拂拭软件 java web 开发教程(1) - 开发环境搭建
- Windows FFMPEG开发环境配置
- 03 测试Hadoop hdfs 上传 与 mr
- 流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点
- Java compiler level does not match the version of the installed Java project facet解决办法
- Python3 Pandas的DataFrame数据的增、删、改、查
- 读取地址C语言
- UVA-129 Krypton Factor(回溯)
热门文章
- 棋盘覆盖问题 (粉书 P230 【递归】** )
- 用 Flotr2 实现的 HTML5 图表
- hdu 1209 Clock(排序)
- git 错误 Reinitialized existing Git repository in /**/***/ 和refusing to merge unrelated histories
- 「LuoguP3379」 【模板】最近公共祖先(LCA)
- 2018值得选用的五个Linux服务器发行版
- 编译生成的h.gch文件是什么鬼?
- C语言之fileno()函数--获取已经打开的文件的文件描述符(小技巧)
- 洛谷 2668&;2540 斗地主——搜索+贪心+dp
- Linux系统启动全过程