[蓝桥杯]生物芯片
生物芯片
题目描述
X 博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。
博士在芯片中设计了 nn 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮。
这些光源的编号从 1 到 nn,开始的时候所有光源都是关闭的。
博士计划在芯片上执行如下动作:
所有编号为 2 的倍数的光源操作一次,也就是把 2 4 6 8 ⋯⋯ 等序号光源打开;
所有编号为 3 的倍数的光源操作一次, 也就是对 3 6 9 ⋯⋯ 等序号光源操作,注意此时 6 号光源又关闭了。
所有编号为 4 的倍数的光源操作一次。
⋯⋯
直到编号为 nn 的倍数的光源操作一次。
X 博士想知道:经过这些操作后,某个区间中的哪些光源是点亮的。
输入描述
输入 3 个用空格分开的整数:N L R(L<R<N<1015)N L R(L<R<N<1015),NN 表示光源数,LL 表示区间的左边界,RR 表示区间的右边界。
输出描述
输出 1 个整数,表示经过所有操作后,[L,R][L,R] 区间中有多少个光源是点亮的。
输入输出样例
示例
输入
5 2 3
输出
2
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
总通过次数: 382 | 总提交次数: 550 | 通过率: 69.5%
难度: 中等 标签: 2014, 思维, 国赛
问题分析
-
操作规则:
- 初始状态:所有光源关闭。
- 执行操作:对编号为
k
的倍数光源切换状态(k
从2
到N
)。 - 最终状态:操作奇数次的光源点亮,偶数次的光源关闭。
-
关键数学性质:
- 光源
x
被操作的次数等于其 除 1 以外的因子个数(因为操作从k=2
开始)。 - 操作次数的奇偶性由因子个数决定:
- 若 因子个数为奇数 → 操作次数为偶数 → 光源关闭。
- 若 因子个数为偶数 → 操作次数为奇数 → 光源点亮。
- 完全平方数的因子个数为奇数(如 4 的因子是 1,2,4),因此最终关闭;非完全平方数的因子个数为偶数(如 2 的因子是 1,2),因此最终点亮。
- 光源
-
问题转化:
- 求
[L, R]
中点亮的灯数 = 区间内 非完全平方数的个数。 - 公式:ans=(R−L+1)−(⌊R⌋−⌊L−1⌋)其中:
- R−L+1:区间总光源数。
- ⌊R⌋:
≤ R
的最大完全平方数数量。 - ⌊L−1⌋:
< L
的最大完全平方数数量。 -
#include <iostream> #include <cmath> using namespace std;int main() {long long n, l, r;cin >> n >> l >> r;// 计算区间长度long long len = r - l + 1;// 计算 [1, L-1] 和 [1, R] 内的完全平方数数量long long a = (l - 1 > 0) ? (long long)sqrtl(l - 1) : 0;long long b = (long long)sqrtl(r);// 完全平方数在 [L, R] 中的数量long long count_square = b - a;// 非完全平方数数量 = 总光源数 - 完全平方数数量long long ans = len - count_square;cout << ans << endl;return 0; }
代码解释
-
输入处理:
- 读入
N
(光源总数)、L
(区间左边界)、R
(区间右边界)。
- 读入
-
区间长度计算:
len = r - l + 1
表示[L, R]
内的总光源数。
-
完全平方数计数:
-
a = sqrtl(l-1)
:计算< L
的最大完全平方数数量(如L=3
时,a = sqrt(2)≈1
,对应完全平方数1
)。 -
b = sqrtl(r)
:计算≤ R
的最大完全平方数数量(如R=6
时,b = sqrt(6)≈2
,对应完全平方数1,4
)。 -
count_square = b - a
:区间[L, R]
内完全平方数的数量(如[3,6]
中只有4
)。
-
-
结果计算:
ans = len - count_square
:非完全平方数数量即为点亮的灯数。
-
复杂度分析
- 时间复杂度:O(1),仅需两次开方运算。
- 空间复杂度:O(1),仅用常数级变量。
-
示例验证
-
输入
5 2 3
:- 区间
[2,3]
总长度 = 2。 - 完全平方数:无(
a = sqrt(1)=1
,b = sqrt(3)≈1
→count_square=0
)。 - 输出
2
(正确)。
- 区间
-
输入
10 3 6
:- 区间
[3,6]
总长度 = 4。 - 完全平方数:
4
(a = sqrt(2)≈1
,b = sqrt(6)≈2
→count_square=1
)。 - 输出
3
(正确)。
- 区间
- 求
相关文章:
[蓝桥杯]生物芯片
生物芯片 题目描述 X 博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。 博士在芯片中设计了 nn 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮。 这些光源…...
Spring Boot使用Redis实现分布式锁
在分布式系统中,分布式锁是一种解决并发问题的常用技术。Redis由于其高性能和丰富的特性,成为实现分布式锁的理想选择。本文将详细介绍如何在Spring Boot应用中使用Redis实现分布式锁。 一、环境准备 安装Redis:确保已经安装并运行Redis服务…...

【如何在IntelliJ IDEA中新建Spring Boot项目(基于JDK 21 + Maven)】
AA. 我的开发环境配置与核心工具链解析 一、开发环境全览 C:\Users\Again>java -version java version "21.0.1" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.112-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.112-LTS-29, mixed m…...

(Python网络爬虫);抓取B站404页面小漫画
目录 一. 分析网页 二. 准备工作 三. 实现爬虫 1. 抓取工作 2. 分析工作 3. 拼接主函数&运行结果 四. 完整代码清单 1.多线程版本spider.py: 2.异步版本async_spider.py: 经常逛B站的同志们可能知道,B站的404页面做得别具匠心&…...

【氮化镓】GaN HMETs器件物理失效分析进展
2021 年 5 月,南京大学的蔡晓龙等人在《Journal of Semiconductors》期刊发表了题为《Recent progress of physical failure analysis of GaN HEMTs》的文章,基于多种物理表征技术及大量研究成果,对 GaN HEMTs 的常见失效机制进行了系统分析。文中先介绍失效分析流程,包括使…...
vb.net oledb-Access 数据库本身不支持命名参数,赋值必须和参数顺序一致才行
参数顺序问题:OleDb 通常依赖参数添加的顺序而非名称,为什么顺序要一样? OleDbParameter 顺序依赖性的原因 OleDb 数据提供程序依赖参数添加顺序而非名称,这是由 OLE DB 规范和 Access 数据库的工作机制共同决定的。理解这个问题需要从数据库底层通信…...

Abaqus连接器弹片正向力分析:
.学习重点: • 外部幾何匯入。 • 建立解析剛性面。 • 利用Partition與局部撒點來提高網格品質。 • 材料塑性行為(材料非線性)。 • 考慮大變形(幾何非線性)。 • 接觸(邊界非線性)。 • 平移組裝。 • 設定輸出參數。 • 討論Shear Locking & Hourglassing效應。 1) 設…...

鸿蒙生态再添翼:身份证银行卡识别引领智能识别技术新篇章
随着信创国产化战略的深入推进和鸿蒙操作系统(HarmonyOS Next)的迅速崛起,市场对兼容国产软件生态的需求日益增长。在这一背景下,中安身份证识别和银行卡识别技术应运而生,为鸿蒙生态的发展注入了新的活力。 移动端身份…...
mybatis打印完整的SQL,p6spy
介绍打印完成的SQL,会降低性能,不要在生产环境使用,我只是在本地,自己的代码中设置,不提交。主要是为了方便,在控制台看见SQL的时候,不用去拼接参数,可以直接复制出来执行。 配置方…...

NLP学习路线图(十九):GloVe
自然语言处理(NLP)的核心挑战在于让机器理解人类语言的丰富含义。词向量(Word Embeddings)技术通过将词语映射到高维实数空间,将离散的符号转化为连续的向量,为NLP任务奠定了坚实基础。在众多词向量模型中&…...

如何使用DAXStudio将PowerBI与Excel连接
如何使用DAXStudio将PowerBI与Excel连接 之前分享过一篇自动化文章:PowerBI链接EXCEL实现自动化报表,使用一个EXCEL宏工作薄将PowerBI与EXCEL连接起来,今天分享另一个方法:使用DAX Studio将PowerBI与EXCEL连接。 下面是使用DAX S…...

软考 系统架构设计师系列知识点之杂项集萃(79)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(78) 第141题 软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括()等方法;后者采用人工和计算机…...
神经网络基础:从单个神经元到多层网络(superior哥AI系列第3期)
🧠 神经网络基础:从单个神经元到多层网络(superior哥AI系列第3期) 哈喽!各位AI探索者们!👋 上期我们把数学"怪兽"给驯服了,是不是感觉还挺轻松的?今天我们要进…...

UVa12298 Super Joker II
UVa12298 Super Joker II 题目链接题意输入格式输出格式 分析AC 代码 题目链接 UVa12298 Super Joker II 题意 有一副超级扑克,包含无数张牌。对于每个正合数p,恰好有4张牌:黑桃p,红桃p,梅花p和方块p(分别…...
面向对象系统中对象交互的架构设计哲学
更多精彩请访问:通义灵码2.5——基于编程智能体开发Wiki多功能搜索引擎-CSDN博客 一、对象交互的本质与设计矛盾 在面向对象范式(OOP)中,对象间的交互实质上是软件组件解耦与功能复用的动态平衡过程。每个对象作为独立的计算单元,既需要维护…...

【网络安全】SRC漏洞挖掘思路/手法分享
文章目录 Tip1Tip2Tip3Tip4Tip5Tip6Tip7Tip8Tip9Tip10Tip11Tip12Tip13Tip14Tip15Tip16Tip17Tip18Tip19Tip20Tip21Tip22Tip23Tip24Tip25Tip26Tip27Tip28Tip29Tip30Tip1 “复制该主机所有 URL”:包含该主机上的所有接口等资源。 “复制此主机里的链接”:包括该主机加载的第三…...

【AFW+GRU(CNN+RNN)】Deepfakes Detection with Automatic Face Weighting
文章目录 Deepfakes Detection with Automatic Face Weighting背景pointsDeepfake检测挑战数据集方法人脸检测面部特征提取自动人脸加权门控循环单元训练流程提升网络测试时间增强实验结果Deepfakes Detection with Automatic Face Weighting 会议/期刊:CVPRW 2020 作者: …...
【面试】音视频面试
C内存模型 H.265(HEVC)相比H.264(AVC)的核心优势 1. 压缩效率显著提升 在相同画质下,H.265的码率比H.264降低约40-50%,尤其适用于4K/8K超高清场景。通过**更大的编码单元(CTU,最大…...

性能优化 - 案例篇:缓冲区
文章目录 Pre1. 引言2. 缓冲概念与类比3. Java I/O 中的缓冲实现3.1 FileReader vs BufferedReader:装饰者模式设计3.2 BufferedInputStream 源码剖析3.2.1 缓冲区大小的权衡与默认值 4. 异步日志中的缓冲:Logback 异步日志原理与配置要点4.1 Logback 异…...
Java编程之建造者模式
建造者模式(Builder Pattern)是一种创建型设计模式,它将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。这种模式允许你分步骤构建一个复杂对象,并且可以在构建过程中进行不同的配置。 模式的核…...
基于TI DSP控制的光伏逆变器最大功率跟踪mppt
基于TI DSP(如TMS320F28335)控制的光伏逆变器最大功率跟踪(MPPT)程序通常涉及以下几个关键部分:硬件电路设计、MPPT算法实现、以及DSP的编程。以下是基于TI DSP的光伏逆变器MPPT程序的一个示例,主要采用扰动…...
Python玩转自动驾驶仿真数据生成:打造你的智能“路测场”
Python玩转自动驾驶仿真数据生成:打造你的智能“路测场” 说到自动驾驶,很多人第一时间想到的是那些造车新势力、激光雷达、传感器、深度学习模型……确实,这些都是自动驾驶的核心硬核。但我今天想和你聊聊一个“幕后功臣”——仿真数据生成。没错,自动驾驶离不开大数据,更…...
从测试角度看待CI/CD,敏捷开发
什么是敏捷开发? 是在高强度反馈的情况下,短周期,不断的迭代产品,满足用户需求,抢占更多的市场 敏捷开发是什么? 是一种产品快速迭代的情况下,降低出错的概率,具体会落实到公司的…...
agent mode 代理模式,整体要求,系统要求, 系统指令
1. 起因, 目的: 我发现很多时候,我在重复我的要求。很烦。决定把一些过程记录下来,提取一下。 2. 先看效果 无。 3. 过程: 要求: 这2个文件,是我与 AI 聊天的一些过程记录。 请阅读这2个文件,帮我提取出一些共同…...

ES101系列07 | 分布式系统和分页
本篇文章主要讲解 ElasticSearch 中分布式系统的概念,包括节点、分片和并发控制等,同时还会提到分页遍历和深度遍历问题的解决方案。 节点 节点是一个 ElasticSearch 示例 其本质就是一个 Java 进程一个机器上可以运行多个示例但生产环境推荐只运行一个…...

Spring AI Advisor机制
Spring AI Advisors 是 Spring AI 框架中用于拦截和增强 AI 交互的核心组件,其设计灵感类似于 WebFilter,通过链式调用实现对请求和响应的处理5。以下是关键特性与实现细节: 核心功能 1. 请求/响应拦截 通过 AroundAdvisor 接口动态修…...

Vue3 + Vite:我的 Qiankun 微前端主子应用实践指南
前言 实践文章指南 vue微前端qiankun框架学习到项目实战,基座登录动态菜单及权限控制>>>>实战指南:Vue 2基座 Vue 3 Vite TypeScript微前端架构实现动态菜单与登录共享>>>>构建安全的Vue前后端分离架构:利用长Token与短Tok…...
使用ArcPy生成地图系列
设置地图布局 在生成地图系列之前,需要先设置地图布局。这包括定义地图的页面大小、地图框的位置和大小、标题、图例等元素。ArcPy提供了arcpy.mp.ArcGISProject方法来加载ArcGIS Pro项目文件(.aprx),并操作其中的地图布局。 Py…...

日语输入法怎么使用罗马字布局怎么安装日语输入法
今天帮客户安装日语输入法的时候遇到了一个纠结半天的问题,客户一直反馈说这个输入法不对,并不是他要的功能。他只需要罗马字的布局,而不是打出来字的假名。 片假名、平假名,就好像英文26个字母,用于组成日文单词。两…...
U盘挂载Linux
在 只能使用 Telnet 的情况下,如果希望通过 U盘 传输文件到 Linux 系统,可以按照以下步骤操作: 📌 前提条件 U盘已插入 Linux 主机的 USB 接口。Linux 主机支持自动挂载 U盘(大多数现代发行版默认支持)。T…...