4199. 公约数-公约数模版题
给定两个正整数 a 和 b。
你需要回答 q个询问。
每个询问给定两个整数 l,r,你需要找到最大的整数 x,满足:
- x 是 a 和 b 的公约数。
- l≤x≤r。
输入格式
第一行包含两个整数 a,b。
第二行包含一个整数 q。
接下来 q 行,每行包含两个整数 l,r。
输出格式
每个询问输出一行答案,即满足条件的最大的 xx,如果询问无解,则输出 −1。
数据范围
前六个测试点满足 1≤a,b≤100,1≤q≤20。
所有测试点满足 1≤a,b≤109,1≤q≤104,1≤l≤r≤109。
输入样例:
9 27
3
1 5
10 11
9 11
输出样例:
3
-1
9
#include <iostream> // 引入输入输出流库
#include <cstring> // 引入字符串操作库
#include <algorithm> // 引入算法库(用于排序等)using namespace std; // 使用标准命名空间,避免每次调用标准库函数时加前缀std::const int N = 1350; // 定义常量N,表示数组q的最大容量int q[N], cnt; // 定义数组q用于存储公约数,cnt用于记录公约数的个数// 求最大公约数的递归函数
int gcd(int a, int b)
{return b ? gcd(b, a % b) : a; // 如果b不为0,则继续递归;否则返回a作为最大公约数
}// 初始化公约数的函数
void init_divisors(int a, int b)
{int d = gcd(a, b); // 计算a和b的最大公约数d// 遍历所有可能的公约数i,满足1 <= i <= sqrt(d)for (int i = 1; i <= d / i; i++) if (d % i == 0) // 如果d能被i整除,则i是公约数{q[cnt++] = i; // 将i加入数组q,并增加计数器cntif (i != d / i) q[cnt++] = d / i; // 如果i和d/i不同,也将d/i加入数组q}sort(q, q + cnt); // 对数组q中的公约数进行排序,确保后续查找时有序// 注意:暴力写法也需要排序。因为后面倒序枚举时找到第一个范围内的数,就直接输出了。// 只有排序后,才可以保证第一个找到的数是最大的数
}// 主函数
int main()
{int a, b;scanf("%d%d", &a, &b); // 输入两个整数a和binit_divisors(a, b); // 初始化a和b的所有公约数int n;scanf("%d", &n); // 输入查询次数nwhile (n--) // 循环处理n次查询{int L, R;scanf("%d%d", &L, &R); // 输入查询区间[L, R]bool found = false; // 标记是否找到符合条件的公约数for (int i = cnt - 1; i >= 0; i--) // 倒序遍历数组q中的公约数if (q[i] >= L && q[i] <= R) // 如果公约数q[i]在区间[L, R]内{printf("%d\n", q[i]); // 输出该公约数found = true; // 标记已找到break; // 跳出循环}if (!found) puts("-1"); // 如果未找到任何符合条件的公约数,输出-1}return 0; // 程序结束,返回0表示正常退出
}
相关文章:
4199. 公约数-公约数模版题
给定两个正整数 a 和 b。 你需要回答 q个询问。 每个询问给定两个整数 l,r,你需要找到最大的整数 x,满足: x 是 a 和 b 的公约数。l≤x≤r。 输入格式 第一行包含两个整数 a,b。 第二行包含一个整数 q。 接下来 q 行,每行包…...
百度文库免费下载器
01 引言 在国内的环境下,Greasy Fork网站是彻底打不开了,导致好多小伙伴想要用脚本都没办法。 特别是需要某Wen库下载的小伙伴,之前还说实在没办法,去Greasy Fork网站上安个脚本就可下载,但是现在网站被墙了…...
[NCTF2019]True XML cookbook[XXE] [内网探测] [网络ip相关知识]
一模一样的登录界面 我直接故伎重演但是并卵 (话说XXE注入之前好像其他博客都加上了<?xml version"1.0" encoding"utf-8"?>,但是不加好像也没有什么问题🤔) <?php /** * autor: c0ny1 * date: …...
Qt | 电脑音频采集曲线Charts
01 audio.pro # 项目使用了charts(图表)模块和multimedia(多媒体)模块。QT += charts multimedia# 调试打印QT += coreHEADERS += \ widget.h \ xyseriesiodevice.hSOURCES += \ main.cpp\ widget.cpp \ xyseriesiodevice.cpptarget.path = $$[QT_INSTAL…...
Linux驱动的基本概念
一 交叉开发编译 概念:交叉开发编译(Cross Compilation)是指在一个平台上生成能在另一个不同平台上执行的代码的编译过程。这是嵌入式系统开发和跨平台软件开发中的常见技术。 二 系统启动流程 在Linux源码下,通过网口利用tftp协议把u-bantu下的uImage…...
win server2022 限制共享文件夹d
点击配额管理中的配额 然后创建配额 导入要配额的文件即可 然后确定即可...
Ansible(3)——主机清单与配置文件
目录 一、创建 Ansible 清单: 1、清单定义: 2、使用静态清单指定受管主机: (1)主机名称指定: (2)IP 地址指定: 3、验证清单: (1࿰…...
C语言 【初始指针】【指针一】
引言 思绪很久,还是决定写一写指针,指针这块内容很多,也不是那么容易说清楚,这里尽可能写地详细,让大家理解指针。(未完序) 一、内存和地址 在讲指针前,需要有一个对内存和地址的认…...
装饰器模式详解
以下是一个结合装饰器模式解决实际开发问题的Java实现案例,涵盖动态扩展功能、多层装饰顺序控制、性能优化等场景需求,附带逐行中文注释: 场景描述 开发一个数据加密传输系统,需满足: 基础功能:原始数据传…...
IP 地址规划中的子网划分:/18 网络容纳 64 个 C 段(/24)的原理与应用解析
整体表格说明 这是某市教育城域网中某县教育相关机构的IP地址规划表,明确了某县一中和某县教育局的IP地址范围,包括终端使用地址段、业务互访地址段。 概念解析 64个C段终端及互联地址 C段地址:一个C段是IP地址中的一个/24网络(…...
linux下Tomcat配置提示权限不够解决办法
文章目录 前言解决方案 前言 往linux服务器上部署Java后端,但是在服务器上安装好的tomcat,却因为权限不够无法进入 这就导致后端war包项目及前端页面无法部署 解决方案 sudo chmod -R 777 /opt/tomcat/webapps修改tomcat目录下的权限即可,对…...
您使用的开源软件许可证是否存在冲突呢?
开源软件代码使用现状 根据最新发布的《第三次自由和开源软件普查报告》,96%的代码库中使用了开源组件,这表明开源技术在现代软件开发中占据了核心地位。在国内企业软件项目中,开源软件的使用率达到了100%,平均每个项目使用了166…...
leetcode刷题日记——接雨水
[ 题目描述 ]: [ 思路 ]: 题目要求求凹进去的部分能接多少雨水,即有多少个格子可以从第一个高度快出发去寻找下一个高于或者等于他的格子,然后计算其中的差值 有高于或等于他的格子,计算他俩中间能装的雨水当后续没有…...
阿里巴巴暑期实习Java面经,灵犀互娱一面
哈希表熟悉吗,可以如何实现? 开散列版本什么时候需要扩容 高并发服务器内的主从reactor模型是如何实现的? 进程 线程 协程 的区别? 如何保证线程安全 ? 了解读写锁吗? 单例模式有了解吗? 可以怎…...
AI知识补全(十四):零样本学习与少样本学习是什么?
名人说:一笑出门去,千里落花风。——辛弃疾《水调歌头我饮不须劝》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(十三):注意力…...
如何用Postman实现自动化测试?
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 这里简单演示在postman中怎样实现自动化测试(不涉及到用户登录的token认证) 导入测试用例文件,测试web接口 postman使用流程…...
LeetCode Hot100 刷题笔记(9)—— 二分查找、技巧
目录 前言 一、二分查找 1. 搜索插入位置 2. 搜索二维矩阵 3. 在排序数组中查找元素的第一个和最后一个位置 4. 搜索旋转排序数组 5. 寻找旋转排序数组中的最小值 6. 寻找两个正序数组的中位数 二、技巧 1. 只出现一次的数字 2. 多数元素 3. 颜色分类 4. 下一个排列 5. 寻找重复…...
Ubuntu 系统上完全卸载 Docker
以下是在 Ubuntu 系统上完全卸载 Docker 的分步指南 一.卸载验证 二.卸载步骤 1.停止 Docker 服务 sudo systemctl stop docker.socket sudo systemctl stop docker.service2.卸载 Docker 软件包 # 移除 Docker 核心组件 sudo apt-get purge -y \docker-ce \docker-ce-cli …...
1017 Queueing at Bank
1017 Queueing at Bank 分数 25 全屏浏览 切换布局 作者 CHEN, Yue 单位 浙江大学 Suppose a bank has K windows open for service. There is a yellow line in front of the windows which devides the waiting area into two parts. All the customers have to wait in li…...
二分答案 + P8800 [蓝桥杯 2022 国 B] 卡牌 - 题解
题解:卡牌问题 题目传送门:P8800 [蓝桥杯 2022 国 B] 卡牌 一、题目描述 小明有n种卡牌,每种卡牌有a_i张。他可以用m张空白牌制作任意卡牌,但第i种卡牌最多只能制作b_i张。问最多能凑出多少套"完整卡牌"(…...
Python----计算机视觉处理(Opencv:道路检测之道路透视变换)
一、透视变换 对于道路检测来说,为了方便车辆进行行驶,道路上都有车道线,为了更加方便对道路线进行检测,首先我们要把到路线平视图转变为俯视图,以便后期处理更加方便,如下图所示,该为虚拟场景的…...
为什么 ThreadLocalMap 的 key 是弱引用 value是强引用
问题一:为什么 ThreadLocalMap 的 key 是弱引用? 【假设 Entry 的 key 是对 ThreadLocal 对象的强引用】:这个 Entry 又持有 ThreadLocal 对象和 value 对象的强引用。如果在其他地方都没有对这个 ThreadLocla 对象的引用了、然后在使用 Thr…...
AI 能解开内容的「不可能三角」吗?
3月21日,以“‘AI商业’进化论”为主题的行业峰会在中欧国际工商学院上海校区成功举行,并发布人工智能与商业创新白皮书。本次活动由中欧国际工商学院与特赞科技Tezign联合主办,中欧特赞人工智能与商业创新研究基金承办,中欧AI与营…...
计算机网络 OSI参考模型
目录 OSS七层 OSI通信过程1 OSI通信过程2 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 OSS七层 OSI通信过程1 OSI通信过程2 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层...
探索新一代大模型代理(LLM agent)及其架构
在人工智能大模型(AI)的浪潮中,2023年我们见证了检索增强生成(Retrieval Augmented Generation, RAG)的兴起,而2024年则无疑成为了“代理”agent的元年。各大AI企业纷纷投身于聊天机器人代理的研发中,工具如MultiOn通过与外部网站的连接实现了…...
AI应用案例(1)——智能工牌和会话质检
今天开辟一个新的模块,自己平时也搜集一些典型的行业应用案例,不如就记录到C站,同时和大家也是个分享好了。 今天分享的企业和产品,是循环智能的智能工牌。 这个产品应用场景清晰,针对的行业痛点合理,解决…...
操作系统高频(五)linux命令
操作系统高频(五)linux命令 1.Linux中查看进程运行状态的指令、tar解压文件的参数。⭐⭐⭐ 在Linux中,可以使用以下指令查看进程的运行状态: top: 用于实时监视系统的进程活动和系统资源使用情况。在终端中运行top…...
HMTL+JS+CSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式
HMTLJSCSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式(可以穿墙死不了,从左边进去可以从右边出来),显示当前分数和最高分,吃到的球颜色可以叠加到蛇身体上 为了适配手机端…...
内网渗透——红日靶场二
目录 一、前期准备 DC机配置 PC机配置 WEB机配置 将PC机和WEB机的IP地址进行更改 开启WEB服务 二、外网探测 1.使用nmap扫描 2.目录扫描 3.漏洞扫描 (1)CVE-2017-3506(getshell失败) (2)CVE-201…...
【Unity】处理文字显示不全的问题
1.选中字体文件,检查 MultiAtlasTeextures 是否勾选,未勾选的话,先勾选保存后查看是否显示正常 2.勾选后未正常显示,则在搜索框中输入未显示的文本,确认字体图集是否包含该文本,然后点击Update Atlas Textu…...
