B - GCD Subtraction
文章目录
- AtCoder Regular Contest 159
- B - GCD Subtraction
AtCoder Regular Contest 159
B - GCD Subtraction
- 问题:每次A,B都减去gcd(A,B),求其中一个减到0至少需要多少次
- 主要思路:
- 首先第一步应该想到每次减去的数,先减去的数一定是后减去的数的因子,可以直接将A/gcd(A,B),B/gcd(A,B),计算两个互质数的答案
- gcd(A,B)=1,考虑什么时候不再减去1,假设为d,那么有 d|(A-t),d|(B-t),于是有 A = i ∗ d + t A = i*d+t A=i∗d+t, B = j ∗ d + t B = j*d+t B=j∗d+t, 1 ≤ t < d 1\le t <d 1≤t<d, d有以下性质
d 是质数且 d ∣ ( A − B ) d 是质数 且 d| (A-B) d是质数且d∣(A−B) - 每次求 A − B A-B A−B的所有质因子
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL gcd(LL a,LL b){return b ==0?a:gcd(b,a%b);
}
void get(LL a,LL b,LL &ans) {if(a == 0 ||b == 0) return ;if(a > b) swap(a,b);LL _min = a;LL d = a;LL t = abs(a-b);LL tmp = t;vector<LL> prime;for(LL i = 2;i * i <= tmp; ++i) {if(t %i == 0) {prime.push_back(i);while(t%i==0) t/= i;}}if(t > 1) prime.push_back(t);for(auto &c:prime) {if(a > c &&a%c < _min) {_min = a%c;d = c;}}ans += _min;get((a-_min)/d,(b-_min)/d,ans);
}
int main(void) {LL A,B;cin>>A>>B;LL d = gcd(A,B);A = A/d;B = B/d;LL ans = 0;get(A,B,ans);cout<<ans<<endl;return 0;
}相关文章:
B - GCD Subtraction
文章目录 AtCoder Regular Contest 159B - GCD Subtraction AtCoder Regular Contest 159 B - GCD Subtraction 问题:每次A,B都减去gcd(A,B),求其中一个减到0至少需要多少次主要思路: 首先第一步应该想到每次减去的数,先减去的数…...
解决Failed to load ApplicationContext问题的思路
中文翻译: 加载ApplicationContext失败 第一步:首先检查测试类的注解 以及 依赖 SpringBootTest <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scop…...
基于CAMX大气臭氧来源解析模拟与臭氧成因分析实践技术应用
查看原文>>>基于CAMX大气臭氧来源解析模拟与臭氧成因分析实践技术应用 目录 专题一、大气臭氧污染来源及成因分析技术讲解;CAMx模式初识及臭氧来源解析模拟本地案例配置说明 专题二、CAMx模式编译安装及空气质量模拟案例配置 专题三、CAMx扩展和探测工…...
异常的讲解 (1)
目录 异常入门的案例 异常介绍 基本概念 异常的小结 常见的运行时异常 1.NullPointerException空指针异常 2.ArithmeticException数学运算异常 3.ArraylndexOutOfBoundsException数组下标越界异常 4.ClassCastException类型转换异常 5.NumberFormatException数字格式不…...
Prometheus - Grafana 监控 MySQLD Linux服务器 demo版
目录 首先是下载Prometheus 下载和安装 配置Prometheus 查看监控数据 监控mysql demo 部署 mysqld_exporter 组件 配置 Prometheus 获取监控数据 -------------------------------------- 安装和使用Grafana 启动Grafana -------------------------------------- 配…...
应届生,实力已超6年,太卷了!
你好,我是田哥 今晚上,给一位朋友做模拟面试,原本说好的90分钟左右,结果整了2个多小时。 很多人估计也很好奇,我们这两个多小时聊聊什么,下面我给大致总结一下: 面试技巧 面试中,我们…...
0-1背包问题
文章目录 0-1背包问题JavaPython0-1背包问题 【问题描述】 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 【输入形式】 第一行输入物品的个数n和背包容量C。 第二行输入每个物品的价值v[i…...
VUE前端项目环境搭建
背景: 想要使用vue搭建一个前端项目,写个小网站练练手,因为没有前端经验,所以从网上找了一个vue得开源模板使用,经过一番挑选选中了字节公司花裤衩大佬开源得项目,地址如下: 开源项目地址&…...
VMware安装Win2000安装程序闪退重启等问题的解决方法
VMware安装Win2000安装程序闪退重启等问题的解决方法 【症状】 1、比较新的VMware版本如16.2.5,Win2000安装时,安装程序在安装Distributed Transaction Coordinator时闪退重启 2、比较新的VMware版本如17.0.1,还会发生显示跳跃性卡顿的现象…...
【id:45】【20分】A. Equation(类与对象+构造)
题目描述 建立一个类Equation,表达方程ax2bxc0。类中至少包含以下方法: 1、无参构造(abc默认值为1.0、1.0、0)与有参构造函数,用于初始化a、b、c的值; 2、set方法,用于修改a、b、c的值 3、ge…...
数据库事务
什么是事务 在数据库中,事务(Transaction)是指一组数据库操作,这些操作要么全部成功执行,要么全部失败回滚,是保证数据库操作一致性的基本单位。事务具有原子性(Atomicity)、一致性…...
Macbook(苹果电脑) VSCode 创建简单c++程序 配置C++开发环境
1.打开 Terminal 终端(Command空格,输入Terminal)。 1.1 输入如下指令,查看是否显示版本信息。 clang --version 1.2 如果出现版本信息,则跳过,否则输入 xcode-select --install 2. 为 VS Code 安装插件 …...
如何使用 Matlab 构建深度学习模型
深度学习已经成为了AI领域的热门话题,相信很多人都想学习如何构建深度学习模型,那么,我们就一起来看看如何使用Matlab构建深度学习模型。 首先,我们需要准备好Matlab的环境。Matlab是一款非常强大的数学计算软件,它提…...
PDF怎么转CAD文件?(免费!高效转换方法汇总)
一般而言,PDF图纸是不能修改的。若需修改,则需将PDF转CAD,此时如何满足PDF转CAD的需求呢?今天,我将教你两种免费的PDF转CAD的方法,助力高效办公。 1.本地软件转换法 这是用本地软件转换方法,支…...
经历了野蛮生长之后,新科技或许已经抵达了全新的临界点
跳出仅仅只是以概念和营销的方式来定义元宇宙,真正找到元宇宙与现实商业之间的桥接,让元宇宙可以在真实实践上得到复现,才是保证元宇宙的发展可以进入到一个全新发展阶段的关键所在。归根到底,我们还是要找到元宇宙落地的正确的方…...
Segment Anything论文翻译,SAM模型,SAM论文,SAM论文翻译;一个用于图像分割的新任务、模型和数据集;SA-1B数据集
【论文翻译】- Segment Anything / Model / SAM论文 论文链接: https://arxiv.org/pdf/2304.02643.pdfhttps://ai.facebook.com/research/publications/segment-anything/ 代码连接:https://github.com/facebookresearch/segment-anything 论文翻译&…...
EMQX vs NanoMQ | 2023 MQTT Broker 对比
引言 EMQX 和 NanoMQ 都是由全球领先的开源物联网数据基础设施软件供应商 EMQ 开发的开源 MQTT Broker。 EMQX 是一个高度可扩展的大规模分布式 MQTT Broker,能够将百万级的物联网设备连接到云端。NanoMQ 则是专为物联网边缘场景设计的轻量级 Broker。 本文中我们…...
RabbitMQ实现消息的延迟推送或延迟发送
一、RabbitMQ是什么? 1.RabbitMQ简介 RabbitMQ是有erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列。 常见的消息队列有:RabbitMQ、Kafka 和 ActiveMQ 2.RabbitMQ的优点 Rab…...
解决python中import导入自己的包呈现灰色 无效的问题
打开File–> Setting—> 打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上。 右键点击需要导入的工作空间文件夹,找到Mark Directory as 选择Source Root。 另外,Python中的…...
消息中间件对比
1,常见消息中间件对比(后续逐个介绍) 比较项TubeMQKafkaPulsar数据时延非常低,10ms比较低,250ms非常低,10msTPS高,14W/s一般,10W/s高,14W/s (高性能场景)过滤消费支持服务端过滤和客户端过滤客…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
