Primes in GCD Table SPOJ - PGCD(莫比乌斯反演+分段)

IEC 61851-24:2023 电动汽车导电充电系统 - 第24部分:直流电动汽车供电设备与电动汽车之间的数字通信,用于控制直流充电 - 完整英文电子版(110页) IEC 61851-24:2023 与 IEC 61851-23 共同适用于直流电动车供电设备与电动道路车辆(EV)之间的数字通信,用于控制导电直流电力传输,额定电源电压最高可达1000伏交流电或最高1500伏直流电,额定输出电压最高可达1500伏直流电。 立即下载

Primes in GCD Table SPOJ - PGCD

Johnny has created a table which encodes the results of some operation -- a function of two arguments. But instead of a boring multiplication table of the sort you learn by heart at prep-school, he has created a GCD (greatest common divisor) table! So he now has a table (of height a and width b), indexed from (1,1) to (a,b), and with the value of field (i,j) equal to gcd(i,j). He wants to know how many times he has used prime numbers when writing the table.
Input

First, t ≤ 10, the number of test cases. Each test case consists of two integers, 1 ≤ a,b < 107.
Output

For each test case write one number - the number of prime numbers Johnny wrote in that test case.
Example

Input:
2
10 10
100 100

Output:
30
2791
题意:

给出一个数 N,M,求1≤x≤N,1≤y≤M,且gcd(x,y)为素数的数对x,y N , M , 求 1 ≤ x ≤ N , 1 ≤ y ≤ M , 且 g c d ( x , y ) 为 素 数 的 数 对 x , y 的数量。

分析:

假设 p p 为素数,那么这道题就转化成了求

gcd(x,y)=p
的数对有多少个。

这样就和我们之前做过的题求 gcd(x,y)=k g c d ( x , y ) = k 的数对有多少个是一样的了


回想以下之前的求解步骤

1)要求 gcd(x,y)=k g c d ( x , y ) = k 的数对多少个相当于求 gcd(xk,yk)=1 g c d ( x k , y k ) = 1 的数对有多少个

2)利用莫比乌斯反演:
设 f(d)表示gcd(x,y)=d的个数 f ( d ) 表 示 g c d ( x , y ) = d 的 个 数

设 F(d)表示gcd(x,y)=d以及d的倍数的个数 F ( d ) 表 示 g c d ( x , y ) = d 以 及 d 的 倍 数 的 个 数

那么根据莫比乌斯反演公式

f(n)=∑n|dμ(dn)F(d) f ( n ) = ∑ n | d μ ( d n ) F ( d )

而且我们易求 F(d)=nd⋅md F ( d ) = n d ⋅ m d

所以答案实际上是求

f(1)=∑1|dμ(d)F(d) f ( 1 ) = ∑ 1 | d μ ( d ) F ( d )

此时的 F(d)=nkd⋅mkd F ( d ) = n k d ⋅ m k d


对于这道题目,求 gcd(x,y)=p的个数 g c d ( x , y ) = p 的 个 数 是不是就是和上面解法一样了,求 gcd(xp,yp)=1 g c d ( x p , y p ) = 1 的个数,只不过p是不知道的,需要我们枚举素数p

因此我们得到公式

ans=∑pmin(n,m)∑1|dmin(n,m)μ(d1)F(d) a n s = ∑ p m i n ( n , m ) ∑ 1 | d m i n ( n , m ) μ ( d 1 ) F ( d )

=∑pmin(n,m)∑1|dmin(n,m)μ(d)npd⋅mpd = ∑ p m i n ( n , m ) ∑ 1 | d m i n ( n , m ) μ ( d ) n p d ⋅ m p d

∑pmin(n,m)∑1|dmin(n,m)μ(d)npd⋅mpd ∑ p m i n ( n , m ) ∑ 1 | d m i n ( n , m ) μ ( d ) n p d ⋅ m p d

但是直接这样枚举的话会超时,那么我们需要考虑优化

令 t=pd,即d=tp t = p d , 即 d = t p

通过变量代换得到

ans=∑t=1min(m,n)∑p|tμ(tp)nt⋅mt a n s = ∑ t = 1 m i n ( m , n ) ∑ p | t μ ( t p ) n t ⋅ m t

=∑t=1min(m,n)nt⋅mt∑p|tμ(tp) = ∑ t = 1 m i n ( m , n ) n t ⋅ m t ∑ p | t μ ( t p )

设 a[t]=∑p|tμ(tp) a [ t ] = ∑ p | t μ ( t p )

=∑t=1min(m,n)nt⋅mta[t] = ∑ t = 1 m i n ( m , n ) n t ⋅ m t a [ t ]

因此我们可以预处理出来 a[t] a [ t ]

同时我们还发现 nt⋅mt n t ⋅ m t 因为是整数除法向下取整,因此中间必定有连续的一段(比如 t−1,t,t+1,t+2 t − 1 , t , t + 1 , t + 2 )这是 nt⋅mt n t ⋅ m t 的值是一样的只不过 a[t] a [ t ] 不同,所以我们可以进行分段,预处理出 a[t] a [ t ] 的前缀和,这样只要我们知道了这一段的范围,就能通过前缀和O(1)查询这一段的 a[t] a [ t ] 的和了然后直接乘上 nt⋅mt n t ⋅ m t 的值,最后求和

那么这个每一段的范围怎么求呢?

我们可以求出 d1=nt,d2=mt d 1 = n t , d 2 = m t ,因此每个这一段的最大范围是 r1=nd1,r2=md2 r 1 = n d 1 , r 2 = m d 2 ,这样 min(r1,r2) m i n ( r 1 , r 2 ) 便是这一段的范围

证明可见下面这道题 Ice Rain(数论+分段)是分段思想的简单应用

code:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
typedef long long ll;
const int maxn = 1e7 + 5;
const int N = 1e6 + 10;
bool vis[maxn];
int prime[N],pnum,mu[maxn],a[maxn];
void init(int n){
    mu[1] = vis[1] = 1;
    pnum = 0;
    //预处理处莫比乌斯函数
    for(int i = 2; i <= n; i++){
        if(!vis[i]){
            prime[pnum++] = i;
            mu[i] = -1;
        }
        for(int j = 0; j < pnum; j++){
            if(i * prime[j] > n) break;
            vis[i*prime[j]] = 1;
            if(i % prime[j] == 0){
                mu[i*prime[j]] = 0;
                break;
            }
            mu[i*prime[j]] = -mu[i];
        }
    }
    //求a[t]与前缀和
    for(int i = 1; i <= n; i++){
        if(mu[i]){
            for(int j = 0; j < pnum; j++){
                if(i * prime[j] > n) break;
                a[i*prime[j]] += mu[i];
            }
        }
    }
    for(int i = 1; i <= n; i++) a[i] += a[i-1];
}
int main(){
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    init(10000000);
    int t,n,m;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&m);
        if(n > m) swap(n,m);
        ll ans = 0;
        for(int i = 1; i <= n; i++){
            int tmp1 = n / i,tmp2 = m / i;
            int next = min(n/tmp1,m/tmp2);
            ans += (ll)tmp1 * tmp2 * (a[next] - a[i-1]);
            i = next;
        }
        printf("%lld\n",ans);
    }   
    return 0;
}
Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典) 立即下载

相关推荐

【带状电容器计算用于电容式触摸传感器应用】半数值模型的电容式触摸传感器集成于金属基材涂层中研究(Matlab代码实现)

内容概要:本文针对电容式触摸传感器在金属基材上应用时易受干扰的问题,提出一种基于半数值模型的仿真分析方法,用于精确计算带状电容器在金属背景下的电容变化。研究通过构建合理的物理模型,结合电磁场理论与数值计算技术,在Matlab平台上实现代码仿真,有效克服金属环境对传感器性能的负面影响,提升其在复杂材料表面工作的稳定性和灵敏度,具有良好的工程应用前景。该方法不仅适用于基础研究,也可为实际产品中抗干扰触摸传感器的设计提供理论依据和技术支撑。; 适合人群:具备电磁场与微波技术基础知识及Matlab编程能力,从事传感器设计、人机交互设备开发、嵌入式系统研发等相关领域的高校研究生、科研人员和工程技术人员。; 使用场景及目标:①开展电容式触摸传感器在金属基材上的集成与优化设计;②掌握半数值建模与仿真方法在电磁传感系统中的应用;③为工业环境下高抗扰触摸器件的研发提供仿真验证手段与设计指导。; 阅读建议:此资源强调物理建模与数值仿真的紧密结合,建议读者结合电磁学原理深入理解边界条件设置、介质分布建模与电场求解过程,并动手运行Matlab代码,调试参数以观察电容响应特性,从而全面提升对传感器工作机制与仿真分析能力的掌握。

SPOJ PGCD - Primes in GCD Table [莫比乌斯反演+分段+求和优化]【组合数学】

题目连接:https://vjudge.net/problem/10581/origin——————————————————————————————–. PGCD - Primes in GCD TableJohnny has created a table which encodes the results of some operation – a function of two argume

Tabris的博客 852

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文提出了一种基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法,旨在实现高效、高可靠性的电力转换。该方法通过建立精确的电路数学模型,结合KKT最优性条件进行分段解析优化,有效协调零电压/零电流软开关实现条件与功率器件电压电流应力之间的矛盾,在确保宽范围软开关的前提下显著降低器件的电气应力,从而提升系统效率与寿命。文中详细阐述了控制策略的理论推导过程,并在Simulink平台上构建了完整的闭环仿真模型,验证了该方法在动态响应速度、转换效率优化及器件应力抑制等方面的优异性能,是对高水平EI期刊研究成果的高质量复现; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员,以及从事DC-DC变换器控制算法开发的工程师;适用于具备扎实电路拓扑分析能力与现代控制理论基础的专业技术人员; 使用场景及目标:①深入理解双有源桥(DAB)变换器的工作机理与关键控制挑战;②掌握将非线性优化问题转化为KKT条件求解的方法及其在电力电子系统中的实际应用;③学习如何通过分段解析策略实现多目标(软开关与低应力)协同优化控制;④复现并拓展EI级论文中的先进控制算法,支撑科研创新与工程实践; 阅读建议:建议读者结合提供的Simulink仿真模型,逐步跟进理论推导与控制逻辑实现过程,重点关注KKT条件的引入方式、边界约束处理及闭环控制器设计细节,同时可尝试将该优化思想迁移至其他隔离型DC-DC变换器拓扑中进行对比验证,以深化对先进优化控制策略的理解与应用能力。

有重复组合公式及其证明方法

有重复组合公式如下: 若在n个元素中有重复的选择r个元素的公式: Crn+r−1Cn+r−1rC_{n+r-1}^{r} 这个公式的证明有很多种方法,这里只选取最容易理解的方式进行证明: 证明如下: 把n个元素当成n个顺序摆放的盒子,r是r个完全相同的球,这样从n个元素中有重复取r个元素的方法就转化成,把r个同质球放入n个盒子的方法 为什么可以这样呢,想想,把一个球放到第i个盒...

codeswarrior的博客 2万+

通达信波段交易公式实战:如何用副图指标精准捕捉买卖点(附完整源码)

本文深入解析通达信波段交易副图指标的构建与应用,提供完整源码实现,帮助投资者精准捕捉买卖点。通过趋势强度度量、超买超卖判断及信号过滤机制,结合K线图分析,有效提升波段交易的成功率。

weixin_29306317的博客 601

TI 实时操作系统SYS/BIOS使用总结

1:概述: SYS/BIOS 是一个可扩展的实时的操作系统。具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片)。能够实现系统的模块化并可裁剪。 最大的特点就是:实时。 2:XDCtools: XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的AP

带头奋青的博客 5万+

Character Encoding HDU - 6397(容斥原理解决方程解个数经典问题详解)

Character Encoding HDU - 6397 In computer science, a character is a letter, a digit, a punctuation mark or some other similar symbol. Since computers can only process numbers, number codes are used t...

codeswarrior的博客 1996

0032期基于深度学习的大米识别-含数据集

083基于深度学习的手势识别小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型。117nlp自然语言处理-文本情感分类-joy-sadness-anger-fear-love-surprise。运行02深度学习模型训练.py就会将txt文本中记录的训练集和验证集进行读取训练,训练好后会保存模型在本地。

grehtsfrs的博客 1505

POJ 3904 Sky Code(容斥原理)

Sky Code Stancu likes space travels but he is a poor software developer and will never be able to buy his own spacecraft. That is why he is preparing to steal the spacecraft of Petru. There is only o...

codeswarrior的博客 1288

Serial RapidIO Gen2 IP 说明(三)

前言 继续接着上篇文章,介绍Serial RapidIO Gen2 IP 的具体端口信息。 一、端口描述 1、缓冲设计接口 2、物理层接口 参考说明 【1】Serial RapidIO Gen2 v4.1https://china.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/srio_gen2/v4_1/pg007_srio_gen2.pdf ...

记录所学,分享知识,结识挚友 1319

OpenCV-Python实战(11)——OpenCV轮廓检测相关应用

在计算机视觉领域,轮廓通常指图像中对象边界的一系列点。因此,轮廓通常描述了对象边界的关键信息,包含了有关对象形状的主要信息,该信息可用于形状分析与对象检测和识别。在本文中,我们将学习如何利用获取到的轮廓,进行形状分析以及对象检测和识别。

盼小辉丶的博客 1万+

Pave the Parallelepiped(有重复组合公式+状态压缩)

Pave the Parallelepiped You are given a rectangular parallelepiped with sides of positive integer lengths A, B and C . Find the number of different groups of three integers (a , b, c) such that 1≤...

codeswarrior的博客 1073

YOLOv11改进 - 卷积Conv | RFAConv:感受野注意力卷积动态调整感受野,提升小目标检出精度

本文介绍了感受野注意力卷积(RFAConv)及其在 YOLOv11 中的结合。空间注意力虽广泛应用但有局限,RFAConv 是将空间注意力与卷积操作融合的新型注意力机制,通过强化感受野空间特征关注、解决卷积核参数共享挑战、增强大尺寸卷积核处理能力等策略优化卷积核功能。它有基于 Group Conv 和 Unfold 两种实现方式,实验表明前者性能更好。我们将 RFAConv 集成进 YOLOv11,在数据集实验证明了方法优越性 。

魔改工程师的博客 1220

cf 997c Sky Full of Stars(组合数+容斥原理)

Sky Full of Stars On one of the planets of Solar system, in Atmosphere University, many students are fans of bingo game. It is well known that one month on this planet consists of n2 days, so calen...

codeswarrior的博客 935

2024年电气工程师最新面试题及答案

1. **基本电气工程原理**:包括电流、电压、电阻、功率等基本概念。2. **欧姆定律**:V = IR,描述电压、电流和电阻之间的关系。42. **风力发电系统组成**:包括风力涡轮机、发电机、控制系统等。44. **智能电网技术**:包括自动化控制、通信技术、数据分析等。10. **减少EMI**:使用屏蔽、滤波、合理布线等方法。40. **光伏系统组成**:包括光伏板、逆变器、控制器等。48. **能量存储技术**:包括电池、超级电容器、飞轮等。

guo162308的博客 6561

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 2841 Visible Trees(容斥原理+解释)

Visible Trees There are many trees forming a m * n grid, the grid starts from (1,1). Farmer Sherlock is standing at (0,0) point. He wonders how many trees he can see. If two trees and Sherlock are ...

codeswarrior的博客 809

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Visible Lattice Points(莫比乌斯反演经典)

Visible Lattice Points Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from po...

codeswarrior的博客 791

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

GCD and LCM(质因子分解+组合数学)

GCD and LCM Given two positive integers G and L, could you tell me how many solutions of (x, y, z) there are, satisfying that gcd(x, y, z) = G and lcm(x, y, z) = L? Note, gcd(x, y, z) means the grea...

codeswarrior的博客 774

hdu 1695 GCD(莫比乌斯反演经典入门||容斥原理+欧拉函数)

GCD Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = k. GCD(x, y) means the greatest common divisor of x and y. Since the number of choices may be very large, ...

codeswarrior的博客 770

Gcd(莫比乌斯反演)

Gcd 给定整数N,求1&lt;=x,y&lt;=N且Gcd(x,y)为素数的 数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 Hint hint 对于样例(2,2),(2,4),(3,3),(4,2) 1&lt;=N&lt;=10^7 题意: 略 分析:...

codeswarrior的博客 749

GuGuFishtion HDU - 6390(莫比乌斯反演+线性求逆元)

GuGuFishtion HDU - 6390 Today XianYu is too busy with his homework, but the boring GuGu is still disturbing him!!!!!! At the break time, an evil idea arises in XianYu’s mind. ‘Come on, you xxxxxxx ...

codeswarrior的博客 660

Sum Of Gcd(欧拉函数+莫队算法详解)

Sum Of Gcd Given you a sequence of number a 1, a 2, ..., a n, which is a permutation of 1...n. You need to answer some queries, each with the following format: Give you two numbers L, R, you should ...

codeswarrior的博客 655

bookshelf HDU - 6363(数论结论+莫比乌斯反演)

bookshelf HDU - 6363 Patrick Star bought a bookshelf, he named it ZYG !! Patrick Star has N book . The ZYG has K layers (count from 1 to K) and there is no limit on the capacity of each layer ! No...

codeswarrior的博客 608

Code POJ - 1850 (组合数学)

Code  POJ - 1850  Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system is that one where a number

codeswarrior的博客 595

Yet Another Problem On a Subsequence(dp+组合数)

Yet Another Problem On a Subsequence The sequence of integers a1,a2,…,ak is called a good array if a1=k−1 and a1&gt;0. For example, the sequences [3,−1,44,0],[1,−99] are good arrays, and the sequence...

codeswarrior的博客 591
上一篇: Character Encoding HDU - 6397(容斥原理解决方程解个数经典问题详解)
下一篇: Mophues(莫比乌斯反演+分段)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值