洛谷P2568 GCD(欧拉线性筛 + 欧拉函数 + 前缀和)

【题解】洛谷P2568(bzoj2818)GCD 欧拉函数+前缀和 题目链接 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入样例#1: 4 输出样例#1: 4 说明 对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=10^7 #include<cstdio> typedef long l... 阅读详情

2020.6.22
占个坑等会写。(9:20)

好了我回来了,窝快饿死了耶(11:59)

好了,不出所料地一道题没写出来。看了两道dp感觉都非常容易想,然后就光荣挂了。看题解发现大家的答案都比我少一维,我自闭了。别人100我30分,大概这就是差距吧。早上看到了一道题,就是这个,刚开始看到本来想对质数表和前缀和进行二分。后来用突然想到可以在制作线性表的时候可以对质数统计答案,所有在n之前的质数的倍数进行统计答案。过了样例,之后只有30pt。我仔细品了一下我的程序发现我好像没有考虑倍数的倍数gcd不为1这个问题。好吧,重新搞嘛,直接统计一下倍数和倍数之间的关系然后特判,自己鼓捣了一个t了两个点的答案。看题解发现其实这道题有更聪明的办法可以解决,然而那个时候我并不知道啥是欧拉函数phi,只知道推狄雷克利卷积和莫比乌斯反演的时候会用到。然后仔细研究了一小会(一个小时)才明白这个函数到底是干什么的,wtcl。

然后就线性地水过去了hhhhh

下学期到底怎么办还待定,建议我已经写了,看学校能不能采纳就是了。这个安排真的就离谱。家乡一天20例如临大敌,学校停课工厂停工,学校所在的镇子一天200+照样开学。也可以说是一种看透了自身条件之后的权宜之计把。但这一切真的不可避免么??我想肯定不是的。如果能早一点采取干预性措施,断然不是这个结果。这不是一场感冒,感染上就意味着你和你最亲近的人有5%的几率会看不到明年的icpc wf。希望学校不要再这么儿戏了。

且不说我们能不能顺利到了校园,路上风险和隔离30天就让我没啥到校地兴趣和动力。自己学他不好嘛??但愿人没事儿。

代码:

#include <bits/stdc++.h>
using namespace std;
#define limit (10000000 + 5)//防止溢出
#define INF 0x3f3f3f3f
#define inf 0x3f3f3f3f3f
#define lowbit(i) i&(-i)//一步两步
#define EPS 1e-6
#define FASTIO  ios::sync_with_stdio(false);cin.tie(0);
#define ff(a) printf("%d\n",a );
#define pi(a,b) pair<a,b>
#define rep(i, a, b) for(int i = a; i <= b ; ++i)
#define per(i, a, b) for(int i = b ; i >= a ; --i)
#define mint(a,b,c) min(min(a,b), c)
#define MOD 998244353
#define FOPEN freopen("C:\\Users\\tiany\\CLionProjects\\acm_01\\data.txt", "rt", stdin)
typedef long long ll;
typedef unsigned long long ull;
ll read(){
    ll sign = 1, x = 0;char s = getchar();
    while(s > '9' || s < '0' ){if(s == '-')sign = -1;s = getchar();}
    while(s >= '0' && s <= '9'){x = x * 10 + s - '0';s = getchar();}
    return x * sign;
}//快读
void write(ll x){
    if(x < 0) putchar('-'),x = -x;
    if(x / 10) write(x / 10);
    putchar(x % 10 + '0');
}
int n,m,k;
int num[limit];
int prime[limit],tot;
ll ans;
ll phi[limit],sum[limit];
void make_prime(int N = 1e7){
    memset(num, 1, sizeof(num));
    num[1] = num[0] = 0;
    tot = 0;
    phi[1] = 1;
    rep(i, 2,N){
        if(num[i])prime[++tot] = i,phi[i] = i - 1;
        for(ll j = 1; j <= tot && i * prime[j] <= N; ++j){
            num[i * prime[j]] = 0;
            if(gcd(prime[j] , i) == 1){
                phi[prime[j] * i] = phi[prime[j]] * phi[i];
            }else{
                phi[prime[j] * i] = prime[j] * phi[i];
            }
            if(i % prime[j] == 0)break;//断开
        }
    }
}//欧拉筛
int main() {
#ifdef LOCAL
    FOPEN;
#endif
    n = read();
    ans = 0;
    make_prime(n);
    rep(i ,1, n){
        sum[i] = phi[i] + sum[i - 1];
    }
    rep(i ,1,tot){
        ans += 2 * sum[n / prime[i]] - 1;
    }
    write(ans);
    return 0;
}
(数论一)积性函数与狄利克雷卷积 ​ 今天做的一道题就是有关积性函数与狄利克雷卷积的,很懵逼。觉得有必要学一手了 一. 积性函数是什么呢? ​ 对于函数f,对于任意的a,b互质,都有: f(a * b) = f(a) * f(b) ​ 这样的函数f就称为积性函数,若a,b不互质也满足上述条件的话,那么函数f又可称为完全积性函数 ​ 它又有什么性质呢? 1.若n = p1q1✖️p2q2✖️ …✖️pn^qn,那么对于积性函数... 阅读详情

相关推荐

P2568 GCD (欧拉函数+gcd)

传送门 1<=n<=1e7 首先考虑gcd(x,y)==1的对数,很容易想到答案就是Σphi[i],对欧拉函数求前缀和就行。 但是题目要求是gcd(x,y)==p (p为素数),其等价为gcd(a*p,b*p)==p,(a b互质) 于是我们可以令x==a*p,y=b*p, 那么对于每个p 都只需要求出满足1<=a*p,b*p<=n,gcd(a,b)==1的a,b对数即可,这个就转化成了我们起初考虑的问题。 具体做法就枚举素数j,Σpre[n/j] ,又因为a b/ b a 是不同

矮纸斜行闲作草 640

数论 狄利克雷卷积(狄利克雷乘积)

现在我们有两个数论函数f(n)、g(n)f(n)、g(n)f(n)、g(n),它们的狄利克雷卷积(乘积)也是一个数论函数。 记他们的狄利克雷卷积为h(n)h(n)h(n) 则有: 简记为h(n)=f(n)∗g(n)h(n)=f(n)*g(n)h(n)=f(n)∗g(n) 性质 1.满足结合律。 2.满足交换律。 参考来源 博客 https://blog.youkuaiyun.com/liyizhixl/ar...

Authur_gyc 2112

Vivado时序违约小结

目录1. setup time违约1.1 逻辑级数太高1.2 Fanout太大2. hold time 违约2.1 异步信号处理导致hold time违约 1. setup time违约 建立时间是工程设计中最常遇到的问题了。一般说来,导致建立时间违例主要有两个原因:逻辑级数太大或者扇出太大,当然也可以尝试通过降频来解决建立时间违约。 1.1 逻辑级数太高 Levels指的是逻辑级数logic level,一个logic level的延迟对应的是一个LUT和一个Net的延迟,对于不同的器件,不同频率的设计能

mu_guang_的博客 7155

洛谷P2568 GCD 欧拉函数+线筛

洛谷P2568 GCD 标签 欧拉函数 前言 简明题意 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 思路 根据套路,可以把上面的式子换成:(原理) ∑p:[1,n]内所有素数∑i=1n∑j=1n[gcd(i,j)==p]\sum_{p:[1,n]内所有素数}\sum_{i=1}^n \sum_{j=1}^n [gcd(i,j)...

danzh 380

从补码原理到实践:RISC-V中addi指令的符号扩展机制详解

本文深入解析了RISC-V架构中addi指令的符号扩展机制。从补码的数学原理出发,详细阐述了12位立即数在指令编码中如何通过符号位进行扩展,并结合lui指令,揭示了加载任意32位立即数的正确方法与实践陷阱,帮助开发者编写高效可靠的底层代码。

weixin_29161719的博客 139

2026.1.11:WSL2中Ubuntu发行版的完全卸载干净指南

摘要:本文详细介绍在WSL2中彻底卸载Ubuntu发行版的步骤。首先通过wsl -l -v确认安装的发行版,使用wsl --terminate终止运行后,推荐使用wsl --unregister命令完全删除发行版(包括所有数据)。还可手动检查残留文件位置(如%LOCALAPPDATA%目录),并提供了备份建议(使用wsl --export)。最后说明验证卸载的方法和可选的高级重置操作。整个过程确保彻底清理相关数据并释放磁盘空间。(

拥抱具身智能,昇腾Ascend C 2391

欧拉函数 - GCD(最大公约数) - 洛谷 P2568

欧拉函数 - GCD(最大公约数) - 洛谷 P2568 给定整数N,求1≤x,y≤N且GCD(x,y)为素数的数对(x,y)有多少对。给定整数N,求1≤x,y≤N且GCD(x,y)为素数的数对(x,y)有多少对。给定整数N,求1≤x,y≤N且GCD(x,y)为素数的数对(x,y)有多少对。 GCD(x,y)即求x,y的最大公约数。GCD(x,y)即求x,y的最大公约数。GCD(x,y)即求x,y的最大公约数。 输入格式 输入一个整数N 输出格式 输出一个整数,表示满足条件的数对数量。 数据范围 1≤N≤1

njuptACMcxk的博客 1629

PCL 计算点云的体积密度(C++详细过程版)

本文提出了一种基于点云体积密度的计算与可视化方法。算法通过KdTree搜索每个点的邻域,利用球体积公式计算单位体积内的点数作为密度值,并存储在点云强度属性中。代码实现了点云读取、密度计算和可视化功能,使用PCL库完成邻域搜索和密度渲染。结果显示,该方法能有效反映点云密度分布,为后续点云处理提供密度特征参考。文章附有完整C++代码实现和可视化效果图,适用于点云密度分析和特征提取应用。

点云侠的博客 308

数学/数论专题-学习笔记:狄利克雷卷积

狄利克雷卷积的学习笔记。

Plozia 的小窝 897

基于截图详解:SAP GUI for Java 如何设置登录链接,以及 conn= 连接字符串该怎么写

摘要:SAP GUI for Java 的连接属性配置关键是在"高级"页签的"conn="后填写连接字符串。连接字符串格式取决于网络拓扑:直连应用服务器使用"/H/主机/S/端口";通过消息服务器负载均衡使用"/M/消息服务器/S/端口/G/组名";经SAProuter访问则需添加路由器前缀。配置时需注意专家模式会覆盖其他页签设置,且连接字符串还支持附加参数如客户端、语言和默认事务码。具体填写内容应根据Basis团队提供的系统信

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 251

DO-297标准详解:IMA系统开发与认证指南

DO-297的前言部分为读者提供了本指南的概述,说明了该标准的编写背景、主要目标、目标受众以及该文件在开发和认证集成模块化航空电子(IMA,Integrated Modular Avionics)系统中的作用。作为现代航空电子架构的重要组成部分,IMA系统大幅度简化了航空电子系统的硬件配置,增加了灵活性并降低了成本。因此,DO-297成为确保IMA系统开发、集成和认证符合适航标准的核心文件。在现代航空领域,系统复杂性逐渐增加,传统上各子系统独立运行的方式已经不适应多任务、多功能的需求。

qq_41854911的博客 1584

狄利克雷卷积_Dirichlet卷积

定义设\(f,g\)是数论函数,考虑数论函数\(h\)满足\[h(n)=\sum_{d|n}f(d)g(\frac{n}{d}) \]则称\(h\)为\(f\)和\(g\)的狄利克雷卷积,记作\(h=f*g\),这里的\(*\)表示卷积。比如\(h(6)=f(1)*g(6)+f(2)*g(3)+f(3)*g(2)+f(6)*g(1)\)性质单位函数\(\epsilon\)是狄利克雷卷积的单位元,即...

weixin_30806145的博客 1619

英伟达 DGX Spark & Reachy Mini 入门教程(一)

英伟达在2026年CES上发布多款开放模型,包括Nemotron推理LLM、Isaac GR00T VLA和Cosmos世界模型,助力开发者构建个性化AI代理。文章详细介绍了如何通过DGXSpark和Reachy Mini机器人打造办公助手,涵盖材料准备(推理/视觉模型、文本转语音服务)、智能体构建(NeMo Agent Toolkit框架)、工具调用和路由策略实现。系统支持本地/云端部署,提供语音交互、视觉识别和动作执行功能,并保持完全开源可定制。最后给出运行演示的终端配置步骤和测试用例,鼓励开发者在此基

2506_90492529的博客 2713

狄利克雷卷积

狄利克雷卷积 狄利克雷卷积是一种定义在两个数论函数函数上的运算,狄利克雷卷积有两种形式: (f∗g)(n)=∑d∣nf(d)g(nd) (f * g)(n) = \sum_{d \mid n}f(d)g(\frac{n}{d}) (f∗g)(n)=d∣n∑​f(d)g(dn​) 或者: (f∗g)(n)=∑xy=nf(x)g(y) (f * g)(n) = \sum_{xy = n}f(x)g(y) (f∗g)(n)=xy=n∑​f(x)g(y) 积性函数 为了以后讨论方便,定义如下数论函数: 单位函数:

jiahonghao2002的博客 2274

SAP S/4HANA Cloud 管理员业务角色创建实战:基于 SAP_BR_ADMINISTRATOR 模板的一站式指南

摘要:SAP S/4HANA Cloud新系统初始登录时常见Fiori Launchpad无磁贴的问题,这是由于缺乏合适的业务角色分配。本文介绍了通过预交付的SAP_BR_ADMINISTRATOR模板创建管理员角色的完整流程,包括业务用户、业务角色和业务目录的核心概念解析。重点说明了直接使用模板的风险,并提供了从模板创建自定义管理员角色的详细步骤(4.1-4.3),以及权限限制设置的注意事项。文中还分享了一个实际项目案例,强调正确配置管理员角色对后续权限体系建设的关键作用。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 204

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

求区间内素数个数 (欧拉筛 + 前缀和优化) + 岛(思维题,用到了unique函数去重)

求区间内素数个数 (欧拉筛 + 前缀和优化) + 岛(思维题,用到了unique函数去重) '只要坚持就会成功--2022.1.17'

qq_55538483的博客 804

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

欧拉筛 回文素数 前缀和 C语言作业题

T216599 C语言作业题 提交47 通过7 时间限制1.00s 内存限制128.00MB 提交答案加入题单 题目提供者CSU-ACM 出题组 难度暂无评定 历史分数无 提交记录 标签 暂无标签进入讨论版 相关讨论 暂无 推荐题目 暂无展开 题目背景 21级新生的C语言作业里有这样一道题: “ 给你一个区间[L,R][L,R],让你求出在这个区间内有多少回文素数,L\leq≤R\leq≤10^3103” 题目描述 相信你已经可以熟练...

cs1414358917的博客 262

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...

对于莫比乌斯函数 和 欧拉函数 小于 1e8差不多都可线筛 1e12以内 杜教筛 代码针对洛古 p4213 n<=(1<<31)-1 杜教筛 #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=5e6+10; b...

weixin_30477797的博客 342

【数论】狄利克雷卷积

1.定义 2.求法 对于卷积的第n项可以直接枚举约数,在根号n的时间内计算 但是对于狄利克雷卷积的前n项 如果一项一项算的话就需要n根号n,但实际上可以优化 设x=d,y=i/d分别枚举x,y对于h[x*y]+=f[x]*g[y]即可。 时间复杂度O(n log n) Code F(i,1,n) h[i]=0; F(i,1,n){ F(j,1,n/i) h[i*j]=(h[i*j]+f[i]*g[j]%mod)%mod; } F(i,1,n) printf("%d..

zsjzliziyang的博客 1520

[BZOJ2818][P2568]Gcd[欧拉函数]

\(gcd(x,y)=p | p∈P\) \(gcd(x_1\times p,y_1\times p) = p\) \(gcd(x_1,y_1)=1\) 每个素数的贡献是对于\([1,\lfloor\frac{n}{prime[i]}\rfloor]\)里的每个数的欧拉函数的前缀和,因为\((x_1,y_1)\)可以交换,就乘上2,重复计算了\((1,1)\),还要减去1 #include &lt...

weixin_34342578的博客 138

UVA11876 N + NOD (N)【欧拉筛法+前缀和】

Consider an integer sequence N where, N0 = 1 Ni = Ni−1 + NOD(Ni−1) for i > 0     Here, NOD(x) = number of divisors of x.     So the first few terms of this ...

海岛Blog 690

基础训练赛第八场--26403--B题(素数第二定理,二分,欧拉筛(线性筛),前缀和)

基础训练赛第八场--26403--B题

zbbxndm的博客 1798

【51Nod1239】欧拉函数之和-杜教筛+哈希表

【51Nod1239】欧拉函数之和-杜教筛+哈希表

Maxwei_wzj的OI世界 691

GCD详细介绍

(1)是基于C语言的底层API (2)用Block定义任务,使用起来非常灵活便捷 (3)提供了更多的控制能力以及操作队列中所不能使用的底层函数 小结 说明:同步函数不具备开启线程的能力,无论是什么队列都不会开启线程;异步函数具备开启线程的能力,开启几条线程由队列决定(串行队列只会开启一条新的线程,并发队列会开启多条线程)。 同步函数 (1)并发队列:不会开线程 (2)串行...

weixin_30813225的博客 1727

GCD hdu2588

GCD Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 897Accepted Submission(s): 400 Problem Description The greatest common divisor GCD(a,...

weixin_33978044的博客 162
上一篇: 洛谷P2111 考场的奇遇(概率dp or 记忆化搜索)
下一篇: Codeforces Round #652 div2 总结 & 端午节前小结
tiany7
博客等级 码龄8年 16粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值