AtCoder Beginner Contest 341 D - Only one of two (Java)

AtCoder Beginner Contest 341 D - Only one of two (Java)

比赛链接:AtCoder Beginner Contest 341

D题传送门AtCoder:D - Only one of two

D题传送门洛谷:[ABC341D] Only one of two

题目:[ABC341D】 Only one of two

题目描述

[problemUrl]: https://atcoder.jp/contests/abc341/tasks/abc341_d

输入格式

输入来自标准输入,格式如下:

N N N M M M K K K

输出格式

打印可被 N N N M M M之一整除的第 K K K个最小正整数。

样例 #1

样例输入 #1

2 3 5

样例输出 #1

9

样例 #2

样例输入 #2

1 2 3

样例输出 #2

5

样例 #3

样例输入 #3

100000000 99999999 10000000000

样例输出 #3

500000002500000000

分析:

由题目分析,暴力会超时,我们可以通过二分来解题。

我们需要找到第 K K K个被 N N N M M M中一个整除的正整数。
我们知道: x / 2 = y . . z x / 2 = y .. z x/2=y..z 说明在 x x x时,有 y y y个数可以被 2 2 2整除

假设x是我们要找的数,c是a,b的最小公倍数。
我们可以计算出 x / a , x / b x/a ,x/b x/ax/b,而c的倍数会被计算两次。

例如:a=4,b=6,则c=12;
如果x=24,x/a=6,x/b=4,x/c=2
出现个数:6+4-2*2=6,对应 4,6,8,12 ,16,18,20,24

即出现个数= x / a + x / b − 2 ∗ ( x / c ) x/a + x/b - 2*(x/c) x/a+x/b2(x/c)

我们通过二分不断改变x的值,知道cnt与k相等。

代码:

import java.util.*;public class Main{// 最大公约数public static long gcd(long x,long y) {if(y==0) return x;return gcd(y,x%y);}public static void main(String[] args) { Scanner sc = new Scanner(System.in);long a = sc.nextLong();long b = sc.nextLong();long k = sc.nextLong();// c是a,b的最小公倍数long c = a*b/gcd(a,b);long cnt = 0;long l = 1;long r = Long.MAX_VALUE;// 二分左右边界while(l < r) {long mid = (l+r)/2;// 计算可被n和m中的一个整除的个数cnt =(mid/a)+(mid/b)-2*(mid/c);if(cnt<k) {l = mid+1;}else r = mid;}System.out.println(l);sc.close();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/478341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客网 HJ100 等差数列

题目&#xff1a; 答案: #include <stdio.h> #include<assert.h> int main() {int n0;while (scanf("%d", &n) ! EOF) //多组输入{ assert(n>1&&n<1000); //判断是否符合题目要求范围int sum2; //初始化首项for(int i1,j2;i…

Java中的线程(创建多线程的三种方法)

Java中的线程——创建 创建多线程方式一&#xff1a;继承Thread类方式二&#xff1a;实现Runnable接口方式三&#xff1a;实现Callable接口 线程的常用API 创建多线程 方式一&#xff1a;继承Thread类 定义一个子类MyThread继承线程类java.lang.Thread&#xff0c;重写run方法…

图形渲染基础学习

原文链接&#xff1a;游戏开发入门&#xff08;三&#xff09;图形渲染_如果一个面只有三个像素进行渲染可以理解为是定点渲染吗?-CSDN博客 游戏开发入门&#xff08;三&#xff09;图形渲染笔记&#xff1a; 渲染一般分为离线渲染与实时渲染&#xff0c;游戏中我们用的都是…

Docker Desktop 链接windos 安装的redis和mysql

1.1.先在容器安装项目 2.链接redis和mysql配置 redis和mysql是在windos安装的&#xff0c;使用的是小p管理器安装的 项目链接 DB_DRIVERmysql DB_HOSThost.docker.internal DB_PORT3306 DB_DATABASEyunxc_test DB_USERNAMEyunxc_test DB_PASSWORDtest123456... DB_CHARSETutf…

《汇编语言》- 读书笔记 - 第10章-CALL 和 RET 指令

《汇编语言》- 读书笔记 - 第10章-CALL 和 RET 指令 10.1 ret 和 retf检测点 10.1 10.2 call 指令10.3 依据位移进行转移的 call 指令检测点 10.2 10.4 转移的目的地址在指令中的 call 指令检测点 10.3 10.5 转移地址在寄存器中的 call 指令10.6 转移地址在内存中的 call 指令检…

调用接口时不时出现 Error: socket hang up

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 今天采用golang创建了一个http服务&#xff0c;准备对若干接口进行测试。 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 在测试第一个接口时&#xff0c;发现采用postman调用接口…

多维时序 | Matlab实现LSTM-Mutilhead-Attention长短期记忆神经网络融合多头注意力机制多变量时间序列预测模型

多维时序 | Matlab实现LSTM-Mutilhead-Attention长短期记忆神经网络融合多头注意力机制多变量时间序列预测模型 目录 多维时序 | Matlab实现LSTM-Mutilhead-Attention长短期记忆神经网络融合多头注意力机制多变量时间序列预测模型预测效果基本介绍程序设计参考资料 预测效果 基…

通俗易懂的L0范数和L1范数及其Python实现

定义 L0 范数&#xff08;L0-Norm&#xff09; L0 范数并不是真正意义上的一个范数&#xff0c;因为它不满足范数的三角不等式性质&#xff0c;但它在数学优化和信号处理等领域有着实际的应用。L0 范数指的是向量中非零元素的个数。它通常用来度量向量的稀疏性。数学上表示为…

rocketMQ-Dashboard安装与部署

1、下载最新版本rocketMQ-Dashboard 下载地址&#xff1a;https://github.com/apache/rocketmq-dashboard 2、下载后解压&#xff0c;并用idea打开 3、修改配置 ①、修改端口及rocketmq服务的ip&#xff1a;port ②、修改访问账号、密码 3、然后启动访问&#xff1a; 4、mav…

LabVIEW高速信号测量与存储

LabVIEW高速信号测量与存储 介绍了LabVIEW开发的高速信号测量与存储系统&#xff0c;解决实验研究中信号捕获的速度和准确性问题。通过高效的数据处理和存储解决方案&#xff0c;本系统为用户提供了一种快速、可靠的信号测量方法。 项目背景 在科学研究和工业应用中&#xf…

透彻理解实时数仓的支撑技术:Upsert Kafka 和 Flink 动态表(Dynamic Table)

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

【wails】(1):使用go做桌面应用开发,wails框架入门学习,在Linux上搭建环境,运行demo项目,并打包测试

1&#xff0c;视频地址 https://www.bilibili.com/video/BV1fK421b7QC/ 【wails】&#xff08;1&#xff09;&#xff1a;使用go做桌面应用开发&#xff0c;wails框架入门学习&#xff0c;在Linux上搭建环境&#xff0c;运行demo项目&#xff0c;并打包测试 2&#xff0c;参考…