题目链接

题目

题目描述

若一个集合A内所有的元素都不是正整数N的因数,则称N与集合A无关。

给出一个含有k个元素的集合A={a1,a2,a3,...,ak},求区间[L,R]内与A无关的正整数的个数。

保证A内的元素都是素数

输入描述

输入数据共两行:

第一行三个正整数L,R,k,意义如“题目描述”。

第二行k个正整数,描述集合A,保证k个正整数两两不相同。

输出描述

输出数据共一行:

第一行一个正整数表示区间[L,R]内与集合A无关的正整数的个数

示例1

输入

1 10 4
2 3 5 7

输出

1

示例2

输入

2 10 4
2 3 5 7

输出

0

说明

对于30%的数据:1<=L<=R<=10^6

对于100%的数据:1<=L<=R<=10^18,1<=k<=20,2<=ai<=100

题解

知识点:容斥原理,数论。

经典容斥题,我们将 \([l,r]\) 拆成 \([1,l-1],[1,r]\) ,分别计算两边然后减一下就行。

众所周知, \([1,n]\) 中 \(d\) 的倍数个数有 \(\left\lfloor \dfrac{n}{d} \right\rfloor\) 。接下来考虑容斥,比如去掉 \(2,3,5\) 的倍数,那么计算过程为:

\[\begin{aligned}
&+ \left\lfloor \dfrac{n}{1} \right\rfloor\\
&- \left( \left\lfloor \dfrac{n}{2} \right\rfloor + \left\lfloor \dfrac{n}{3} \right\rfloor + \left\lfloor \dfrac{n}{5} \right\rfloor \right) \\
&+ \left( \left\lfloor \dfrac{n}{2\cdot3} \right\rfloor + \left\lfloor \dfrac{n}{2\cdot 5} \right\rfloor + \left\lfloor \dfrac{n}{3 \cdot 5} \right\rfloor \right) \\
&- \left\lfloor \dfrac{n}{2 \cdot 3 \cdot 5} \right\rfloor\\
\end{aligned}
\]

时间复杂度 \(O(2^k)\)

空间复杂度 \(O(k)\)

代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long; int a[27];
int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
ll l, r;
int k;
cin >> l >> r >> k;
for (int i = 1;i <= k;i++) cin >> a[i]; ll ans = 0;
for (int mask = 0;mask < (1 << k);mask++) {
ll mul = 1;
bool f = 0;
for (int i = 0;i < k;i++)
if (mask >> i & 1) mul = min((__int128_t)mul * a[i + 1], (__int128_t)1e18 + 1), f ^= 1;
if (mul > 1e18) continue;
ans += (f ? -1 : 1) * (r / mul - (l - 1) / mul);
} cout << ans << '\n';
return 0;
}

NC16513 无关(relationship)的更多相关文章

  1. 牛客小白月赛5 A 无关(relationship) 【容斥原理】【数据范围处理】

    题目链接:https://www.nowcoder.com/acm/contest/135/A 题目描述 若一个集合A内所有的元素都不是正整数N的因数,则称N与集合A无关.   给出一个含有k个元素的 ...

  2. 牛客小白赛5 无关(relationship) 容斥原理(计算因子数的模板)

    链接:https://www.nowcoder.com/acm/contest/135/A来源:牛客网 若一个集合A内所有的元素都不是正整数N的因数,则称N与集合A无关.   给出一个含有k个元素的集 ...

  3. python---ORM之SQLAlchemy(3)外键与relationship的关系

    relationship是为了简化联合查询join等,创建的两个表之间的虚拟关系,这种关系与标的结构时无关的.他与外键十分相似,确实,他必须在外键的基础上才允许使用 不然会报错: sqlalchemy ...

  4. 2000条你应知的WPF小姿势 基础篇<78-81 Dialog/Location/WPF设备无关性>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...

  5. CSharpGL(22)实现顺序无关的半透明渲染(Order-Independent-Transparency)

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(22)实现顺序无关的半透明渲染(Order-Independent-Transparency) 在 GL.Enable(GL_BLEND ...

  6. [bigdata] 使用Redis队列来实现与机器无关的Job提交与执行 (python实现)

    用例场景: 定时从远程多台机器上下载文件存入HDFS中.一开始采用shell 一对一的方式实现,但对于由于网络或者其他原因造成下载失败的任务无法进行重试,且如果某台agent机器down机,将导致它对 ...

  7. EX:The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

    EX:The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secu ...

  8. 如何解决CRUD操作中与业务无关的字段赋值

    提高效率一直是个永恒的话题,编程中有一项也是可以提到效率的,那就是专注做一件事情,让其它没有强紧密联系的与之分开.这里分享下我们做CRUD时遇到的常见数据处理场景: 数据库表字段全部设计为非空,即使这 ...

  9. 第15章 设备无关位图_15.3 DIB和DDB的结合

    第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说 ...

  10. 第15章 设备无关位图_15.1 DIB文件格式

    15.1 DIB文件格式(一种文件格式,扩展名为BMP) 15.1.1 OS/2风格的DIB 文件格式 字段 说明 文件头 (BITMAPFILEHEADER) 1.共14个字节 2.缩写建议用bmf ...

随机推荐

  1. MyBatis 系列:MyBatis 源码环境搭建

    目录 一.环境准备 二.下载 MyBatis 源码和 MyBatis-Parent 源码 三.创建空项目.导入项目 四.编译 mybatis-parent 五.编译 mybatis 六.测试 总结 一 ...

  2. springBoot 整合 hikari

    Hikari是一款非常强大,高效,并且号称"史上最快连接池".并且在springboot2.0之后,采用的默认数据库连接池就是Hikari.不需要引入依赖,已经在SpringBoo ...

  3. spring--FactoryBean和BeanFactory有关系吗

    BeanFactory 和 FactoryBean 是 Spring 框架中的两个不同的概念,两者是雷锋和雷峰塔的关系,就是没有任何关系,它们在 Spring 的依赖注入和 bean 创建过程中扮演不 ...

  4. JMS 服务器健康检查

    JMS所有服务器程序,包括Gateway.GatewayReferee.Proxy.TokenServer.以及编写的微服务器,都支持使用第三方工具进行健康检查. 使用telnet 进行健康检查 向任 ...

  5. 指定特定IP走特定网卡的方法

    指定特定IP走特定网卡的方法 背景 目标: 能够在有VPN以及多个网卡的情况下, 使用特定的IP地址进行登录服务器. 作用: 便于审计以及安全管理, 避免出现安全风险. 方式方法: route 命令设 ...

  6. [转帖]linux删除文本文件空白行

    linux删除文本文件空白行https://www.zhihu.com/people/chen-kai-84-54-75 sed命令 在Linux中,可以使用sed命令批量删除文本中的空白行.以下是一 ...

  7. 二进制安装Mysql数据库的快速方法

    二进制安装Mysql数据库的快速方法 摘要 还是国产操作系统 rpm包可能不太兼容,为了简单准备使用tar包方式安装mysql数据库 这里简单记录一下过程. 为以后使用. 介质下载 下载二进制的tar ...

  8. Springboot 内嵌Tomcat 的http连接池与thread的关系

    前言 最近看了很多tcp/ip 连接以及 IO相关的文章,但是依旧对数据库连接池等的部分不是很清楚, 所以这里仅是简单描述一下tomcat对应的http连接池数量的情况,不考虑与数据库的连接池的情况. ...

  9. 解决刷新SwaggerUi控制台报错

    一.问题描述 在浏览器刷新SwaggerUI的页面,控制台就报错: java.lang.NumberFormatException: For input string: "" at ...

  10. vue新一轮的面试题

    参考的连接: https://juejin.cn/post/6844903876231954446 1. 在vue中watch和created哪个先执行?为什么? 在wacth监控数据时,设置imme ...