878. 第 N 个神奇数字

题解:二分 + gcd

  1. 1~n中,能被a整除的个数 n/a , 能被b整除的个数 n/b, 能被a 且 b 整除的个数 n/ gcd(a,b) 则 1~n中能被a或b整除的个数为 n/a + n/b - n/gcd(a,b)
  2. 从1~n中二分,搜这个数k 1~k中 k/a + k/b - k/gcd(a,b) = n,也就是答案
  3. 因为n的范围1e9, a的范围4e4,所以最大的n为 4e13
class Solution {
public int nthMagicalNumber(int n, int a, int b) {
final int mod = (int) (1e9 + 7);
long l = 1, r = (long) 4e13;
while (l < r) {
long mid = (l + r) / 2;
if (get(mid, a, b) >= n) r = mid;
else l = mid + 1;
}
return (int) (r % mod);
} int gcd(int a, int b) {
return b > 0 ? gcd(b, a % b) : a;
} long get(long mid, int a, int b) {
return mid / a + mid / b - mid / ((long) a * b / gcd(a, b));
}
}

878. 第 N 个神奇数字的更多相关文章

  1. [LeetCode] 878. Nth Magical Number 第N个神奇数字

    A positive integer is magical if it is divisible by either A or B. Return the N-th magical number.  ...

  2. Leetcode(878)-第 N 个神奇数字

    如果正整数可以被 A 或 B 整除,那么它是神奇的. 返回第 N 个神奇数字.由于答案可能非常大,返回它模 10^9 + 7 的结果. 示例 1: 输入:N = 1, A = 2, B = 3 输出: ...

  3. [Swift]LeetCode878. 第 N 个神奇数字 | Nth Magical Number

    A positive integer is magical if it is divisible by either A or B. Return the N-th magical number.  ...

  4. Swift LeetCode 目录 | Catalog

    请点击页面左上角 -> Fork me on Github 或直接访问本项目Github地址:LeetCode Solution by Swift    说明:题目中含有$符号则为付费题目. 如 ...

  5. leetcode难题

    4 寻找两个有序数组的中位数       35.9% 困难     10 正则表达式匹配       24.6% 困难     23 合并K个排序链表       47.4% 困难     25 K ...

  6. C#LeetCode刷题-二分查找​​​​​​​

    二分查找篇 # 题名 刷题 通过率 难度 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30 ...

  7. C#LeetCode刷题-数学

    数学篇 # 题名 刷题 通过率 难度 2 两数相加   29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 ...

  8. LeetCode刷题总结-数学篇

    本文总结LeetCode上有数学类的算法题,推荐刷题总数为40道.具体考点分析如下图: 1.基本运算问题 题号:29. 两数相除,难度中等 题号:166. 分数到小数,难度中等 题号:372. 超级次 ...

  9. LeetCode contest-95[876,877,👁878]

    876. Middle of the Linked List first submission # Definition for singly-linked list. # class ListNod ...

  10. infoq 微信后台存储架构

    infoq 上微信后台存储架构 视频很是值得认真一听,大概内容摘要如下: 主要内容:同城分布式强一致,园区级容灾KV存储系统 - sync 序列号发生器      移动互联网场景下,频繁掉线重连,使用 ...

随机推荐

  1. 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统

    我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户,在这个过程中,我也积累了不少如何开发运营 ...

  2. P6108 [Ynoi2009] rprsvq 积分题解

    给 EI 题解写注 qwq.. 化简方差: \[\frac{1}{n}\sum(a_i-\overline a)^2\\ =\frac{1}{n}(\sum a_i^2-2\overline {a}\ ...

  3. 越“挖”越有料,天翼云“息壤”助攻DeepSeek变身万能搭子!

    还在为DeepSeek服务器繁忙而抓狂? 还在为API调用费用涨价而头疼? 还在为数据安全而担忧? 别急! 天翼云"息壤"算力互联调度平台出马 全面解锁DeepSeek新玩法 带你 ...

  4. 使用XManager远程连接服务器的时候使用Qt键盘会错位偏移

    问题 最近使用XManager访问服务器的xfce桌面,在使用Qt查看代码的时候发现键盘会错位 如下图,我输入application,最终显示这个 这样子就根本无法进行开发了 然后在网上找,发现有人出 ...

  5. [CERC2014] Parades 题解

    感觉长脑子了. 考虑在路线两端点的 \(lca\) 计算贡献,那么线段可以分两类: \(u\) 为 \(v\) 祖先. \(u,v\) 互不为祖先. 设 \(dp_i\) 表示只考虑 \(i\) 子树 ...

  6. @Scheduled参数及cron表达式解释

    @Scheduled支持以下8个参数:1.cron:表达式,指定任务在特定时间执行:2.fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms:3.fixedDela ...

  7. 机器学习中的 K-均值聚类算法及其优缺点

    K-均值聚类算法是一种经典的机器学习算法,用于将数据集分成 K 个不同的簇.它是一种无监督学习算法,即不需要标签或任何先验知识来指导聚类过程. 算法的工作原理如下: 随机选择 K 个数据点作为初始聚类 ...

  8. Sqoop1的导入导出

    Sqoop1 和 Sqoop2 的区别 # 版本上 Sqoop1: 1.4.x Sqoop2: 1.99.x # 架构上 Sqoop1 使用 Sqoop客户端直接提交的方式(命令.将命令封装在脚本中) ...

  9. PHP 命名空间与spl_autoload_register() 自动加载机制

    转:https://www.cnblogs.com/chihuobao/p/9895202.html include 和 require 是PHP中引入文件的两个基本方法.在小规模开发中直接使用 in ...

  10. 【MathType】word2016数学公式编号

    问题 毕业论文排版中,对数学公式需要类似(3-1)的格式. 解决技巧 在写论文初稿的时候,先不要于公式的编号,先给它编一个号,比如(3) (2) (4)的. 最后写完了以后,再再添加section , ...