当前位置: 首页 > news >正文

[蓝桥杯 2024 国 Java B] 美丽区间

问题描述

美丽区间是这样的一组区间:[L1,R1]、[L2,R2]、[L3,R3].. 构造美丽区间需要满足以下条件:

  1. L1=1
  2. Li≤Ri
  3. Ri−Li≥K
  4. 对于任意的 i>1,有 Li=Ri−1  +1
  5. gcd(Li,Ri)=1,其中 gcd指两个数的最大公约数
  6. 在满足上述条件的情况下,Li、Ri​ 之间的差尽可能的小。

输入格式

第一行输入一个整数 K。 第二行输入一个整数 T,表示有 T 组测试用例。 接下来 T 行,每行输入一个整数 n。

输出格式

对每个输入的整数 n,输出一行,包含一个整数,表示 n 属于第几个美丽区间。

样例输入

10
3
123
33
10

样例输出

11
3
1

样例说明

第 1 个美丽区间为:[1,11]。

第 2 个美丽区间为:[12,23]。

第 3 个美丽区间为:[24,35]。

⋯⋯

第 11 个美丽区间为:[120,131]。

评测用例规模与约定

对于 60% 的评测用例:1≤T≤10^3,1≤K≤10^6,1≤n≤10^6。

对于 100% 的评测用例:1≤T≤10^6,1≤K≤10^6,1≤n≤10^6。

解题思路

要找出输入的整数在第几个区间,因为我们可以先根据题目要求把所有的美丽区间找到,并存储好美丽区间的左边界以及该区间属于第几个区间。

为了方便我们后续进行查找,我们可以用TreeMap存储这些数据,key存储左边界,value存储第几区间。

因为 TreeMap内部已经封装了基于红黑树的高效查找逻辑,并提供了一系列方法直接支持范围查询、上下界查找等操作。可以直接使用floorEntry()方法查找<=n的最大键值对,再用getValue()取值就能得到属于第几个区间。

代码

import java.util.Scanner;
import java.util.TreeMap;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int k=sc.nextInt();//key存储区间左边界,value存储属于第几个区间TreeMap<Integer, Integer> map=new TreeMap<>();int l=1;int cnt=1;map.put(l,cnt);//存储第一个区间l=k+2;//从第二个区间开始cnt=2;while(l<=1000000) {int r=l+k;while(gcd(l,r)!=1) {r++;}map.put(l, cnt);l=r+1;cnt++;}int t=sc.nextInt();while(t-->0) {int n=sc.nextInt();//查找<=n的最大键值对,再取值int res=map.floorEntry(n).getValue();System.out.println(res);}sc.close();}private static int gcd(int a,int b) {return b==0?a:gcd(b,a%b);}}

http://www.xdnf.cn/news/946153.html

相关文章:

  • pymilvus
  • VRFF: Video Registration and FusionFramework 论文详解
  • 启动已有小程序项目
  • 详解K8s 1.33原地扩缩容功能:原理、实践、局限与发展
  • 【K8S】Kubernetes从入门到实战:全面指南
  • 云原生K8s+Docker+KubeSphere+DevOps
  • K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
  • 上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
  • AspectJ 在 Android 中的完整使用指南
  • 博睿数据×华为, 共筑智慧金融新未来
  • UE5 学习系列(一)创建一个游戏工程
  • 机器学习监督学习实战六:五种算法对新闻组英文文档进行文本分类(20类),词频统计和TF-IDF 转换特征提取方法理论和对比解析
  • 【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
  • 让 Kubernetes (K8s) 集群 使用 GPU
  • 阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
  • k8s从入门到放弃之Service负载均衡
  • AWS vs 阿里云:功能、服务与性能对比指南
  • 轻量级关键点 blaze pose 2025
  • SpringCloud优势
  • 软件工程教学评价
  • CentOS 7 部署 Samba 使用虚拟用户笔记
  • centos 7 部署awstats 网站访问检测
  • GO语言---init函数
  • Vue 3 实战:【加强版】公司通知推送(WebSocket + token 校验 + 心跳机制)
  • 软件工程 期末复习
  • 【Linux开发】Hi3516dv300-DC-182型开发板显示开机logo的相关操作
  • 统计学(第8版)——假设检验学习笔记(考试用)
  • 阿里云服务器 篇十七:网站悬浮球
  • Jenkins构建时出现报错`ERROR: Failed to install JDK. Exit code=2`的终极解决方案
  • 2025年- H79-Lc187--118. 杨辉三角(找规律)--Java版