poj 3904(莫比乌斯反演)

【算法笔记】莫比乌斯反演(包含定理,两种形式的证明及入门经典模板) 一、莫比乌斯反演 学习笔记,我是看这个博客入门的,讲的非常好,传送门,关键是给出了非常多的定理,好多是数论书上的权威概念。 我自己证明的照片在文末,有点乱 首先,莫比乌斯反演是什么? 第一种形式: F(n)=∑d∣nf(d)=>f(n)=∑d∣nμ(d)F(nd)F(n)=\sum_{d|n}f(d)=>f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})F(n)=d∣n∑​f(d)=>f(n)=d∣n∑​μ(d)F(dn​) 第二种形式: F(n)=∑n∣df(d)=& 阅读详情

POJ 3904 

题意:

从n个数中选择4个数使他们的GCD = 1,求总共有多少种方法

Sample Input

4
2 3 4 5 
4
2 4 6 8 
7
2 3 4 5 7 6 8

Sample Output

1 
0 
34


思路:先求出选择四个数所有的情况,C(4,n) = n * (n-1) * (n-2) * (n-3),然后减去GCD为2,GCD为3......;在这过程中我们会把GCD = 6减去两次,所以需要加上。刚好满足莫比乌斯函数

函数:合数为0 ,质数数目为奇  -1,质数数目为偶 1

先筛出mu函数,然后求即可

Tc_To_Top非常感谢


/*
POJ3904
Tc_To_Top:http://blog.youkuaiyun.com/tc_to_top/article/details/49130111
非常感谢,让我对莫比乌斯有了进一步了解- -/*毕竟弱
以前对这个求GCD一直很模糊,
C(n,k) - C(gcd只含奇数个质数的个数,k) + C(gcd只含偶数个质数的个数,k),前面的符号就是莫比乌斯函数
先求出所有可能的情况,然后容斥原理需要减去以及加上一些数,而这就极好的利用了莫比乌斯原理。
不是有一种求1≤x≤a,1≤y≤b中一共有多少对互质的数
for(int i = 1;i <= n;i++)
    ans += mu[i]*(n/i)*(n/i);
感觉就是上面原理的压缩版,i等于一时求出所有情况,然后减去GCD=2,....加上GCD=6...
(#‵′)靠,感觉自己好坑 - -!   居然纠结半天

*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <vector>
#include <algorithm>
#include <functional>
typedef long long ll;
using namespace std;

const int inf = 0x3f3f3f3f;
const int maxn = 1e5;
int tot;
int is_prime[maxn];
int mu[maxn];
int prime[maxn];

void Moblus()
{
    tot = 0;
    mu[1] = 1;
    for(int i = 2; i < maxn; i++)
    {
        if(!is_prime[i])
        {
            prime[tot++] = i;
            mu[i] = -1;
        }

        for(int j = 0; j < tot && i*prime[j] < maxn; j++)
        {
            is_prime[i*prime[j]] = 1;
            if(i % prime[j])
            {
                mu[i*prime[j]] = -mu[i];
            }
            else
            {
                mu[i*prime[j]] = 0;
                break;
            }
        }
    }
}

int tmax;
int num[maxn],cnt[maxn];
ll get_()
{
    for(int i = 1; i <= tmax; i++)
    {
        for(int j = i; j <= tmax; j+=i)
        {
            cnt[i] += num[j];              //计算GCD为i的集合中的个数
        }
    }
    ll ans = 0;
    for(int i = 1; i <= tmax; i++)
    {
        int tt = cnt[i];
        if(tt >= 4)
            ans += (ll)mu[i]*tt*(tt-1)*(tt-2)*(tt-3)/24;
    }
    return ans;
}



int main()
{
    int n;
    Moblus();
    while(scanf("%d",&n)!=EOF)
    {
        memset(num,0,sizeof(num));
        memset(cnt,0,sizeof(cnt));
        for(int i = 0; i < n; i++)
        {
            int tt;
            scanf("%d",&tt);
            num[tt] ++;
            tmax = max(tmax,tt);
        }
        if(n < 4)
            printf("0\n");
        else
            printf("%lld\n",get_());
    }
}



在轻量化与精度之间取得平衡:YOLOv8 + GhostNet 的设计与实验分析 摘要: GhostNet系列(GhostNet、GhostNetv2、GhostNeXt)通过“幽灵特征图”技术,以极低计算量生成丰富特征,为YOLOv8提供轻量化改造方案。该技术能在减少参数量与计算量的同时保持或提升检测精度,适用于边缘设备部署。实现时需替换YOLOv8的Backbone为GhostNet模块,并通过消融实验验证其有效性。实验数据表明,改造后的模型在参数量降低30%的同时,推理速度提升28.6%,mAP@0.5最高提升1.9个百分点,平衡了轻量化与精度,为毕设提供技术创新性与工程落地性的双 阅读详情

相关推荐

CUBEMX ADC 单/多通道+DMA

本文使用的是STM3F103C8T6 Cubemx进行单/多通道DMA配置。

记录学习 1403

POJ 3904(容斥原理)

题目链接:http://poj.org/problem?id=3904; 题意:给出一组数,找出4个互质的数有多少组。 分析:先找出不互质的数,用容斥原理求出这些数的个数,然后再用C(n,4)减去这个数就行了。 找不互质的数,先对每个数进行素因子分解,再用二进制枚举的方法进行计算出每个数的因子包含几个素因子,并求出这些因子的总个数。最后会是2有a[2]个,3有a[3]个,6有a[6]个,但6

北门的智慧 1461

【WSL】window11 安装WSL2配置conda环境及mlatom环境搭建

写这篇文章之前自己安装过两次环境,可能每次都会产生碰到同样的问题,为了搭建适合自己的虚拟环境保证每一步的正确性,按顺序记录一下。

wangxiancao的博客 1629

POJ 3904 Sky Code (容斥原理)

http://poj.org/problem?id=3904 题意,给出n个数,问有多少组(a,b,c,d)公约数为1,注意并不一定两两互质!          总共情况: C(n , 4)             容斥原理应用,           以2为因子的数有a个,3为因子 的数有b个,6为因子的数有c个,           n个数不互质的四元组个数为C

老李2009 703

[原创]Step by step 实现自己的AI知识库问答(二)

对小白很友好的AI智能问答开发保姆级教程,适合初级开发者、学生阅读参考,无限制分享,欢迎转载。在这个章节中,我们使用了百度千帆作为知识库,通过简单的代码调用API实现了智能问答。

BaiRiYiSanJin的博客 1470

【从零开始学Skynet】实战篇《球球大作战》(一):功能设计

为了能把之前在基础篇中学习到的Skynet的各种知识结合起来,所以在实战篇中,我们准备开发一个完整的游戏案例《球球大作战》,介绍分布式游戏服务端的实现方法。

我是一条寻水的鱼 2978

POJ-3904 Sky Code

题意:给出n个数,问找出4个数满足4个数最大公约数为1,最多有多少组。 思路:容斥原理,遍历每个数的素因子,奇数个加偶数个减,然后C(n,4)-sum。 题目链接:http://poj.org/problem?id=3904 View Code 1 #include <iostream> 2 #include <cstdio> 3 #...

bancaidun1539的博客 154

【MNE脑电信号处理学习笔记1】数据的读取、可视化、剪裁、滤波和保存

MNE之读取原始数据、可视化数据、剪裁数据、滤波和保存 Reading & visualizaing raw data, cropping, filtering, and saving 原视频教程:Pybrain: M/EEG analysis with MNE Python 原笔记和材料:pybrain_mne 本文根据视频和个人理解对原笔记进行细微修改。 Import the few packages we’ll need import matplotlib import pathlib i

小白家 4214

POJ 3904 容斥原理

题意 传送门 POJ 3904 题解 总的四元组个数为 CN4C_{N}^{4}CN4​,需要减去包含大于一的因子的四元组数量。O(NN)O(N\sqrt N)O(NN​) 对编号数组各个元素进行因数分解,统计包含约数 iii 的元素个数,记为 cnt[i]cnt[i]cnt[i]。那么包含约数 iii 的四元组数量为 Ccnt[i]4C_{cnt[i]}^{4}Ccnt[i]4​。 根据容斥原理,首先减去包含一个素因子的四元组数量,接着加上包含两个素因子的四元组数量…容易观察到,约数为 iii 的四元组对

neweryyy的博客 213

11、CUDA 内存优化:平铺矩阵乘法技术解析

本文深入解析了CUDA中的平铺矩阵乘法技术,重点介绍了如何利用共享内存和线程协作减少全局内存访问,提升计算效率。通过矩阵乘法实例,详细阐述了平铺算法的执行流程、内核代码实现及性能优化策略,包括平铺大小选择、线程同步机制和代码优化建议。文章还分析了该技术在深度学习、图像处理和科学计算等领域的应用价值,为CUDA程序的内存优化提供了系统性指导。

peace的博客 70

CAPL控制程控电源

汽车电子测试过程中,除了实车测试,还有台架测试,在进行台架测试时,都需要通过电源来模拟汽车电瓶给ECU供电,如果要进一步进行比较高效的压力测试或自动化测试,就需要用到程控电源,所以本章主要介绍CAPL是如何来控制程控电源的。

测试领域技术分享 4387

POJ 3904 HDU 5072 容斥原理

poj 3904 点击打开链接     hdu 5072 点击打开链接 poj  3904 题意 :在给出的n个数中,找出4个数 符合gcd(a,b,c,d)=1的 组数。 hdu  5072  题意:再给出n 个数中,找出 3个数  符合(a,b)=(b,c)=(a,c)=1或  (a,b)!=1,(b,c)!=1,(a,c)!=1  的组数。。。 总的来说 :这两题的思路 都是把这n个数

一切顺其自然 480

Sigrity OptimizePI Best Capacitor Location Estimation模式如何评估电容最佳位置操作指导

Sigrity OptimizePI Best Capacitor Location Estimation模式用于前仿真分析,评估电容的最佳位置以获得最小回路电感,如何分析,以下图为例进行说明。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。Min设置为1(最少电容个数为1),max设置为28(最多电容个数为28)Capacitors 输入C*,将所有C开头的器件都识别为电容。Grid X设置为8,Grid Y也设置为8。

weixin_54787054的博客 382

POJ3904 Sky Code 容斥原理 or 莫比乌斯反演

在做题的时候遇到了莫比乌斯反演 所以就想找个题目做做 POJ3904 题目大意: 给出n 以及 n 个数字 找到四个互质的数有多少种 即 求gcd(a,b,c,d)=1的情况数 可以用容斥原理 找到四个数不互质的情况 然后用总数减去这些情况 就是互质的 参考:https://blog.youkuaiyun.com/lianai911/article/details/47609075 四...

OneLine_的博客 320

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

POJ 3904 入门莫比乌斯反演

POJ 3904 入门莫比乌斯反演(数论)

king9666的博客 205

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

poj 3904 莫比乌斯反演 或 容斥原理

poj 3904 莫比乌斯反演 或 容斥原理 题目: 给出n个数字a1,a2,...an, 求从中选出一个四元组(a,b,c,d), 使得gcd(a,b,c,d)=1,求符合条件的四元组的数目。 限制: 1 思路: 莫比乌斯反演入门题 设f(k)为gcd(a,b,c,d)=k的四元组的数目, 设F(k)为gcd(a,b,c,d)为k的倍数的四元组的数目, F(k

whai的专栏 1907

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

poj3904 容斥原理或莫比乌斯反演

传送门 题意:从给出的n个数中选取4个最大公因数为1的四元组的选取数 思路:感觉容斥问题都有一个很相似的地方,就是要从问题的逆方向来考虑,所谓正难则反,这也是思维中一个很重要的地方。我们来考虑这个逆问题,便是选取4个最大公因数不为1的四元组,总选取方式为C(n,4)那么也就是这四个数的最大公因数里至少有一个素数,换句话说,至少有一个相同的素数能够将这四个数整除,如果这n个数中有m个数是这个素数

竹丙丙丙丙 471

POJ 3904 Sky Code 莫比乌斯反演 容斥原理

原题见POJ 3904给n个数,求其中四个数的gcd是1的情况有多少种。从反面考虑,算出gcd不是1的情况,总数取反即是结果。这是容斥原理的思想。当时在做POJ 1091的时候即是这样的想法。画一个vene图,每个集合表示最大公约数为k的情况数。 当k含有素数因子的平方项,如4,12,其实已经被2的情况数覆盖,不必再进行任何处理。只需考虑k是素数的一次方的乘积的情况。当素数个数为奇数个,如2,

Ugly Gardon 2409

POJ 3904 (莫比乌斯反演)

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 one problem...

weixin_30851409的博客 74

【POJ3904】Sky Code [数学 莫比乌斯反演 入门]

POJ - 3904 大概 好像 只用到了那个思想 只是这道题用的素数筛和我常用的不一样 然后就 emmmmmm 把mo[prime[j]*i]打成了mo[i] 然后就是prime[j]*i<N打成了prime[j]<N/i 好像是精度有问题 1 #include<iostream> 2 #include<cstdio> 3 #inclu...

weixin_30484247的博客 147

POJ - 3904 Sky Code【莫比烏斯反演】

Sky Code Time Limit:1000MS Memory Limit:65536K Total Submissions:3990 Accepted:1337 Description Stancu likes space travels but he is a poor software developer and will never ...

微微风簇浪,散作满河星 428

POJ 3904 Sky Code (容斥+莫比乌斯反演)

POJ 3904 Sky Code (容斥+莫比乌斯反演)

Tc的专栏 1296

POJ 3904 (莫比乌斯反演)

Sky Code Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1964   Accepted: 629 Description Stancu likes space travels but he is a poor software developer and

morejarphone~ 657
上一篇: SPOJ VLATTICE(莫比乌斯反演)
下一篇: bzoj 2440 (莫比乌斯函数)
Tyuio28
博客等级 码龄11年 12粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值