How many integers can you find(容斥原理)

CXL3.0 CDAT(Coherent Device Attributes Table) 在说明CDAT之前,先讲一下CXL中的DOE类型:CXL协议里定义了两种DOE的类型,一种是Compliance就是合规性测试的内容,还有一种就是CDAT(一致性属性表)Memory_Info_Valid是CXL设备的内存配置完成标志,位于DVSEC(Designated Vendor-Specific Extended Capability)的CXL Range X Size Low寄存器中(X为1或2)。 阅读详情

How many integers can you find

   Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For example, N=12, and M-integer set is {2,3}, so there is another set {2,3,4,6,8,9,10}, all the integers of the set can be divided exactly by 2 or 3. As a result, you just output the number 7. 

Input
There are a lot of cases. For each case, the first line contains two integers N and M. The follow line contains the M integers, and all of them are different from each other. and the M integer are non-negative and won’t exceed 20.
Output
For each case, output the number.
Sample Input

12 2
2 3

Sample Output

7
题意:

给定n和一个大小为m的集合,集合元素为非负整数。为1…n内能被集合里任意一个数整除的数字个数。n<=2^31,m<=10

分析:

首先我们将能被i整除记为满足性质AiAi,那么根据题意实际是让我们求

|A1⋃A2⋃⋯⋃Am||A1⋃A2⋃⋯⋃Am|

根据容斥原理的推论:

|A1⋃A2⋃⋯⋃Am||A1⋃A2⋃⋯⋃Am|

=∑|Ai|−∑|Ai⋃Aj|+∑|Ai⋃Aj⋃Ak|+⋯=∑|Ai|−∑|Ai⋃Aj|+∑|Ai⋃Aj⋃Ak|+⋯

                                +(−1)m+1|A1⋃A2⋃⋯⋃Am|                                +(−1)m+1|A1⋃A2⋃⋯⋃Am|

根据组合数我们知道它的项数一共有:

C0m+C1m+C2m+⋯+Cmm=2mCm0+Cm1+Cm2+⋯+Cmm=2m

因为m不超过10,所以完全可以枚举完成

巧妙利用二进制表示取法1代表取0表示不取,然后用按位与得到选取了哪一个

满足奇数个性质是加号,满足偶数个性质是减号

code:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[20];
ll gcd(ll a,ll b){
    return b ? gcd(b,a%b) : a;
}
int main(){
    while(scanf("%lld%lld",&n,&m) != EOF){
        int ans = 0;
        vector<int> v;
        for(int i = 0; i < m; i++){
            scanf("%lld",&a[i]);
            if(a[i] > 0) v.push_back(a[i]);//注意不能有0
        }
        m = v.size();//更新长度
        for(int i = 1; i < (1 << m); i++){//注意这里其实枚举到(1<<m)-1即m个1表示m个性质全有
            int cnt = 0;
            ll x = 1;
            for(int t = 0; t < m; t++){//枚举每个性质看当前情况选择了那个性质
                if(i & (1 << t)){
                    cnt++;
                    x = x * v[t] / gcd(x,v[t]);
                }
            }
            if(cnt & 1) ans += (n - 1) / x;
            else ans -= (n - 1) / x;
        }
        printf("%d\n",ans);
    }
    return 0;
}
机器学习特征选择-t检验 在特征选择的过程中通过计算检验统计量值,比较特征之间的统计量的大小,并降序排列,选取统计值较高的特征,从而起到去除差别小的特征(此差别小的特征难以区分不同的额类别)的目的。 以t检验(Student's t test)为例: 假设检验 通过比较两类样本的随机变化,通过计算其p值决定是否拒绝零假设,也即是说:通过计算p值,若p值小于某一阈值则认为两个样本具有显著差异,两个样本是不同的,此时拒绝... 阅读详情

相关推荐

计算机组成原理实验(已通关)-华中科技大学头歌Educoder(Logisim)

汉字国标码转区位码实验 汉字机内码获取实验 8位可控加减法电路设计 第2关 CLA182四位先行进位电路设计 第3关 4位快速加法器设计 第4关 16位快速加法器设计 第5关 32位快速加法器设计 第6关 5位无符号阵列乘法器设计 6位有符号补码阵列乘法器 乘法流水线设计 原码一位乘法器设计 偶校验编码设计 偶校验解码电路设计 16位海明编码电路设计 16位海明解码电路设计 海明编码流水传输实验 16位CRC并行编解码电路设计 CRC编码流水传输实验

紫荆鱼的博客 4万+

How many integers can you find HDU - 1796(容斥定理应用)

Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For example, N=12, and M-integer s...

wait 285

优化NEXYS A7开发板(Xilinx Artix-7)Microblaze核的FLASH读写性能实战

本文针对NEXYS A7开发板(Xilinx Artix-7)上Microblaze核读写FLASH速度慢的问题,提供了系统性的优化实战指南。通过深入分析SPI控制器配置、Flash指令模式选择、Microblaze核的Cache与硬件加速器优化,以及程序运行位置(BRAM vs DDR)的调整,有效将FLASH读写性能从“龟速”提升至接近理论峰值。文章结合实测数据,为FPGA嵌入式开发者提供了清晰的性能瓶颈分析与解决方案。

carrot的博客 256

How many integers can you find(容斥定理)

Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For example, N=12, and M-integer s...

booty 491

CTR模型:Deep&Cross Network

1. 简介 DCN模型(Deep & Cross Network for Ad Click Predictions)是2017年提出的。 出发点: (1)人工探索所有的交叉特征是不现实的; (2)难于推广未曾出现过的交叉特征。 DNN能够自动探索交叉特征并推广到未出现过的交叉特征,但是DNN的学习效率不高,且无法显式的学习特征交叉。 Deep&Cross Network, DCN 模型保留了DNN的优点,并提出了新的cross network,高效学习高阶特征交互。 优点: (1)cross

rosefun96的博客 9356

TouchGFX在STM32上的移植全过程:超详细版指南

深入讲解将TouchGFX集成到STM32开发环境的每一步,涵盖配置、驱动适配与UI调试。无论是初学者还是进阶开发者,都能快速掌握TouchGFX在嵌入式平台的应用技巧。

weixin_42443533的博客 600

How many integers can you find (HDU-1796)(容斥原理)

Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For example, N=12, and M-integer...

菜鸡的博客 222

PaddleOCR转ONNX模型实战:5分钟搞定中文OCR推理部署(附完整代码)

本文详细介绍了将PaddleOCR模型转换为ONNX格式并进行高效推理部署的完整实战方案。通过Paddle2ONNX工具实现模型转换,利用ONNX Runtime构建跨平台推理引擎,涵盖环境配置、模型优化、批量处理及多平台部署等关键步骤,显著提升中文OCR在边缘设备上的推理性能。

weixin_29051811的博客 616

Can you find it? 二分

Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers Ai, Bj, Ck, which satisfy the formula Ai+Bj+Ck = X.  InputThe

Cold_Sun_的博客 451

Unity中URP实现水体效果(泡沫)

在上篇文章中,我们实现了水体的深度。在这篇文章中,我们来使用上篇文章采样后的深度图来实现水中的泡沫效果。

楠溪泽岸的博客 3489

RoCEv2 (RDMA over Converged Ethernet) 技术详细介绍

本文深入解析RDMA over Converged Ethernet (RoCEv2)技术,该技术是AI时代算力网络的核心。文章从四个维度展开:首先阐述RDMA如何通过零拷贝和内核旁路解决传统网络的数据搬运瓶颈;接着拆解RoCEv2协议栈,对比其与InfiniBand和iWARP的特性差异;然后分析其在分布式AI训练、高性能存储等场景的关键价值;最后提供实战指南,强调无损网络配置、流量隔离和精细监控的重要性。RoCEv2虽能带来微秒级延迟和极低CPU开销,但需精心设计网络环境才能发挥最大效能。

技术引领业务创新 1386

HDU 1796 How many integers can you find(简单容斥原理)

题目大意:有一个序列,大小为m,里面有m个不超过20的非负数,各不相同。要求在1-n中有多少个能被m个数中任意一个数整除。 题目思路:简单的容斥原理应用。就不说了直接上代码。 有两种方法,一种是DFS,一种是直接位元素枚举暴力(study from zhixiaoli) DFS:(速度较快) #include #include using namespace std; long long

Jason 890

[QMT量化交易小白入门]-八十九、深度学习训练多维特征进行金融价格行情预测

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 217

hdoj 1796 How many integers can you find 【容斥原理】

How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5331    Accepted Submission(s): 1513 Problem Descripti

世界很大 902

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HDU 1796 How many integers can you find (容斥原理)

题目链接:How many integers can you find 题面: How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5345   

David_Jett 1134

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

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

hdu 1796 How many integers can you find[经典容斥原理]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1796 题目的意思:     让你

1565

HDU 1796 How many integers can you find【容斥原理】

How many integers can you find Time Limit : 12000/5000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 96   Accepted Submission(s) : 31 Font: Times New Roman |

Puya的博客 304

[hdu 1796 How many integers can you find]容斥原理模板

hdu 1796 How many integers can you find 容斥原理模板 题目链接:hdu 1796 How many integers can you find  题意:给你一个数N,和有一个M个数的集合a1,a2,...,aM。0 分析:首先考虑特殊情况,N 当M==1,答案就是N / a1。 当M==2,答案就是N / a1 + N / a2 - N / l

Fighting! 494

HDOJ 1796 How many integers can you find 容斥原理

How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4852    Accepted Submission(s): 1389 Problem Descripti

码代码的猿猿 883

hdu 1796 How many integers can you find(容斥原理)

How many integers can you find Problem Description   Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by

a709743744的博客 334

hdu 1796 How many integers can you find 容斥原理

传送门:hdu 1796 How many integers can you find题目大意在M个集合中,找到能被N整除(不包含N)的个数解题思路首先要解决这个题目要知道什么容斥定理! 我们先假设N=100,然后M=3其中M集合中的元素为{1,2,3} 如果我们直接计算N/a1 = 100,N/a2=50,N/a3 = 33,在计算前两个的时候,N/a2这么多个元素就是多余的,在计算后面两个的

woshinannan的专栏 521

hdu1796 How many integers can you find 容斥原理

Description   Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For example, N=12

xtulollipop 652

HDU 1796How many integers can you find(容斥原理)

How many integers can you find Time Limit:5000MSMemory Limit:32768KB64bit IO Format:%I64d & %I64u SubmitStatusPracticeHDU 1796 Description Now you get a number N,...

apk6909的博客 156

HDU1796 How many integers can you find 容斥原理

HDU1796 How many integers can you find 题意: 给出n,和m个数,求小于n,且可以被m个数中任意一个整除的数有哪些? 解题思路: 因为 m 很小,用二进制来枚举每种取法。 对于每种取法,求取出来的这些数的LCM,由容斥原理知道,选取的数的个数为奇数时加,偶数时减。 坑点在这 m 个非负数中有0 。 AC代码: #includ...

Hagtaril 309

C - How many integers can you find(容斥原理&暴力)

C - How many integers can you find(容斥原理&暴力) 思路:暴力或者搜索,因为MMM最大只有10,根据容斥原理可以用选出的元素个数计算对答案的贡献,奇数就加,偶数就减。 AC代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<string> #include<cmath>

Harris-H的博客 548

HDU 1796 How many integers can you find 容斥原理

题意:       求1->n-1之间能被一个集合A内元素整除的数的个数,例如n = 12, A = {2, 3} 则能被A集合元素整除的数的集合为{2,  3, 4 , 6, 8, 9, 10}则结果为7。 解法:容斥定理,用回溯算法。 让我没想到的是用深搜来解决多重for循环问题 Description   Now you get

u013087645的专栏 709

HDU 1796 How many integers can you find(容斥原理)

HDU 1796 How many integers can you find(容斥原理)

Dacc123的博客 533
上一篇: String painter HDU - 2476(区间DP)
下一篇: oval-and-rectangle HDU - 6362(求定积分+化简)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值