首页 > 其他分享 >莫比乌斯反演与最大公约数

莫比乌斯反演与最大公约数

时间:2023-05-31 15:32:32浏览次数:57  
标签:满足条件 已知 乌斯 反演 最大公约数 莫比 对数


在数论中,有很多题目都与莫比乌斯反演有关,最典型的就是最大公约数。比如你可以见到如下常见问题。


(1)已知

莫比乌斯反演与最大公约数_数组

,求

莫比乌斯反演与最大公约数_莫比乌斯反演_02

为质数的

莫比乌斯反演与最大公约数_数组_03

的对数,或者

莫比乌斯反演与最大公约数_莫比乌斯反演_02

等于1的

莫比乌斯反演与最大公约数_数组_03

的对数。


(2)已知

莫比乌斯反演与最大公约数_时间复杂度_06


莫比乌斯反演与最大公约数_数组_07

,求

莫比乌斯反演与最大公约数_莫比乌斯反演_02

为质数的

莫比乌斯反演与最大公约数_数组_03

的对数,或者

莫比乌斯反演与最大公约数_莫比乌斯反演_02

等于1的

莫比乌斯反演与最大公约数_数组_03

的对数。


(3)已知

莫比乌斯反演与最大公约数_莫比乌斯反演_12

,求

莫比乌斯反演与最大公约数_时间复杂度_13

的对数。


(4)已知

莫比乌斯反演与最大公约数_时间复杂度_06


莫比乌斯反演与最大公约数_数组_07

,求

莫比乌斯反演与最大公约数_莫比乌斯反演_16

的对数。


上面的问题其实都可以用莫比乌斯反演来解,时间复杂度都还可以。关于莫比乌斯反演,前面的文章中有详细介绍。


 

接下来,我们看一个关于莫比乌斯反演稍微复杂一点的题目。

 

题目:http://acm.fzu.edu.cn/problem.php?pid=2106


题意:给一个长度小于20的整数数组a[],有另外一个数组b[],满足条件

莫比乌斯反演与最大公约数_莫比乌斯反演_17

,求使得条件    

莫比乌斯反演与最大公约数_时间复杂度_18

成立的数组b[]的个数,结果对

莫比乌斯反演与最大公约数_莫比乌斯反演_19

取余。


分析:依据前面学的莫比乌斯反演,我们先设两个函数

莫比乌斯反演与最大公约数_莫比乌斯反演_20


莫比乌斯反演与最大公约数_数组_21



    

莫比乌斯反演与最大公约数_莫比乌斯反演_20

为满足条件

莫比乌斯反演与最大公约数_时间复杂度_23

的对数


    

莫比乌斯反演与最大公约数_数组_21

为满足条件

莫比乌斯反演与最大公约数_时间复杂度_25

的对数


     那么,很明显有

莫比乌斯反演与最大公约数_时间复杂度_26

,注意这里的

莫比乌斯反演与最大公约数_莫比乌斯反演_27


莫比乌斯反演与最大公约数_莫比乌斯反演_28

公共因子。


     而

莫比乌斯反演与最大公约数_数组_29

,反演后得到

莫比乌斯反演与最大公约数_数组_30


     在这里我们只考虑

莫比乌斯反演与最大公约数_莫比乌斯反演_31

为无平方因子的数即可。




标签:满足条件,已知,乌斯,反演,最大公约数,莫比,对数
From: https://blog.51cto.com/u_16146153/6387403

相关文章

  • 4.1 最大公约数
    第一部曲:两种思路一种枚举一种利用辗转相除法,枚举可以选择从小到大也可以选择从大到小。第二部曲: 第三部曲:if(m<n)swap(m,n); k=m%n; while(k!=0) { m=n; n=k; k=m%n; } cout<<n;第四部曲:#include<iostream>//从小到大枚举#include<algorithm>usingnamespacestd;int......
  • 最大公约数
    求任意两个正整数的最大公约数(GCD)。通过从1穷举求最大公约数:#include<iostream>usingnamespacestd;intmain(){ intm,n,a; cin>>m>>n; if(m<n) { inttemp=m; m=n; n=temp; } for(inti=1;i<=n;i++) { if(m%i==0&&n%i==0) { a=i; } } cout<<m&......
  • day 31 最大公约数
     1.使用辗转相除法2.输出结果 #include<iostream>usingnamespacestd;intg(inta,intb){if(a<b){swap(a,b);}intt=1;while(t){t=a%b;a=b;b=t;}returna;}intmain(){intnum;printf("请输入两个正整数:");inta,b;......
  • 最大公约数
    一、问题描述:二、设计思路: 三、程序流程图: 四、代码实现:#include<stdio.h>intmain(){intx,y;scanf("%d%d",&x,&y);intmin=x;if(y<min)min=y;for(inti=min;i>=1;i--){if(x%i==0&&y%i==0)......
  • 浅谈反演
    浅谈反演二项式反演\(g_i=\sum\limits_{j=0}\binom{i}{j}f_j,f_i=\sum\limits_{j=0}(-1)^{i-j}\binom{i}{j}g_j\)还有一个的形式\(g_i=\sum\limits_{j=i}\binom{j}{i}f_j,f_i=\sum\limits_{j=i}(-1)^{i-j}\binom{j}{i}g_j\)这里只针对第一个形式,为了得到更普遍的反演,这里我......
  • 容斥与反演技巧(三)
    Min-Max容斥简单来说,由于\(\mathbbE[\max(x,y)]\neq\max(\mathbbE[x],\mathbbE[y])\),而如果计算\(\mathbbE[\min(x,y)]\)比计算\(\mathbbE[\max(x,y)]\)容易得多,我们就通常使用min-max容斥转为计算\(\mathbbE[\min(x,y)]\)。对于上面这种\(x,y\)的情况,实际上......
  • 找出数组的最大公约数
    给你一个整数数组nums,返回数组中最大数和最小数的最大公约数。两个数的 最大公约数是能够被两个数整除的最大正整数。示例1:输入:nums=[2,5,6,9,10]输出:2解释:nums中最小的数是2nums中最大的数是102和10的最大公约数是2示例2:输入:nums=[7,5,6,8,3]输......
  • 莫比乌斯反演常见的三个模型
    莫比乌斯反演常见模型模型1:\(\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=t]\)\[\begin{aligned}\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=t]&=\sum_{i=1}^{\lfloor\frac{n}{t}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{t}\rfloor}[gcd(i,j)=1]\\&=\sum_{i=1}^{\lfloor\f......
  • 莫比乌斯反演学习笔记(内涵反演详细推导和证明!)
    莫比乌斯反演前言记得上次学这个东西已经是一年前了,题到没有做过几道……一些有趣的东西莫比乌斯这个人还是很nb的,相信大家都听说过莫比乌斯带,就是他发现的,跟所有数学大佬一样的,他还喜欢天文学和物理废话不扯多了前置知识整除分块一个在数论计算中异常常见的东西,一般和......
  • 拉格朗日反演公式(lagrange inversion)组合证明
    Thereisasimplecombinatorialproof.Theoriginalformis\[[t^n]w^k=\frac{k}{n}[t^{n-k}]\phi^k\]where\(w=t\phi(w)\)consider\(w\)asegf.ofthewaysofsometrees.\(\phi\)asageneratingruleconcerningdegree.\[n![x^n]\frac{w^k}{k......