Codeforces Round #828 (Div. 3)

题目链接

Codeforces Round #828 (Div.3)

Divisible Numbers (hard version)

题目描述

给出四个整数 a,b,c,d, 请你构造一对整数 (x,y), 满足:

  • a<xc, b<yd

  • x×ya×b 的倍数

若不存在,输出 1

数据范围:

简单版:1a<c105,1b<d105

困难版:1a<c109,1b<d109

其中,单个测试点中包含不超过 10 组数据

样例 #1

样例输入 #1

10 1 1 2 2 3 4 5 7 8 9 15 18 12 21 14 24 36 60 48 66 1024 729 373248 730 1024 729 373247 730 5040 40320 40319 1000000000 999999999 999999999 1000000000 1000000000 268435456 268435456 1000000000 1000000000

样例输出 #1

2 2 4 6 12 12 -1 -1 -1 -1 373248 730 -1 -1 15120 53760 -1 -1 536870912 536870912

解题思路

思维

简单版主要是枚举 x,然后要使 x×ya×b 的倍数,则 y 应该是 a×gcd(a×b,x) 的倍数,然后范围内判断是否存在这样的倍数即可,困难版由于数据范围的原因不能直接枚举 x,观察可知:y 要是 a×gcd(a×b,x) 的倍数,这里 gcd(a×b,x) 一定是 a×b 的约数,只用枚举约数即可,然后即可解出 y,同理,解出 y 后同样的方法解出 x

  • 时间复杂度:O(1600×1600×log(109))

__EOF__

本文作者acwing_zyy
本文链接https://www.cnblogs.com/zyyun/p/16841484.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   zyy2001  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
历史上的今天:
2021-10-30 博弈论
2021-10-30 338. 计数问题
点击右上角即可分享
微信分享提示