题目描述:

第一行和第二行输入8个数字,对应每一位第二行都小于第一行,求最小的值xxx令xxx对第一行每一位取余后等于第二行(x不小于第一行的每个数)(x不小于第一行的每个数)(x不小于第一行的每个数)

题目分析:

首先有式子xxx%a=ba=ba=b,xxx%c=dc=dc=d,先设第一个满足条件的xxx为x1x1x1对于每个满足题意的xxx,都有x=n∗LCM(a,c)+x1x=n*LCM(a,c)+x1x=n∗LCM(a,c)+x1,LCM(a,c)LCM(a,c)LCM(a,c)为aaa和ccc的最小公倍数,这点可以自行证明。此时令m=LCM(a,c)m=LCM(a,c)m=LCM(a,c)。

随后,若引入一个新的e,fe,fe,f有xxx%e=fe=fe=f,则xxx要在满足x=n∗LCM(a,c)+x1x=n*LCM(a,c)+x1x=n∗LCM(a,c)+x1的情况下查找满足新式子的最小x2x2x2,随后更新mmm,因为之后满足的xxx与x2x2x2的差值又要满足被a,c,ea,c,ea,c,e整除,因此就要将mmm更新为m=LCM(m,e)m = LCM(m,e)m=LCM(m,e),以此类推,求得最后一个满足的最小xxx即为答案。

复杂度大概是ans除一个阶乘吧,不太好算,但是比暴力枚举快一些

代码:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string>
#include<string.h>
#include<math.h>
typedef long long ll;using namespace std;int m, n;
struct P {int a, b;
}p[8];bool cmp(P a, P b) {return a.a < b.a;
}int gcd(int a, int b) {//gcd模板,求最大公约数return (b ? gcd(b, a % b) : a);
}int lcm(int a, int b) {//根据gcd求最小公倍数return a / gcd(a, b) * b;
}int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);//c++操作,不用管他for (int i = 0; i < 8; i++) cin >> p[i].a;for (int i = 0; i < 8; i++) cin >> p[i].b;//两行输入m = p[0].a, n = p[0].b + p[0].a; int j;//初始化,此时m每次加第一个a,n为满足第一对的最小值for (int i = 1; i < 8; i++) {for (j = n; ; j += m) {//j被初始化为当前最小值每次加mif (j % p[i].a == p[i].b && j % p[i - 1].a == p[i - 1].b) {//判断成立,更新n和m,退出当前层循环n = j, m = lcm(m, p[i].a); break;}}}cout << n << endl;return 0;
}
/*
2 3 5 7 11 13 17 19
1 2 4 6 10 12 16 18
*/

一道GCD LCM题目题解相关推荐

  1. ptaa乘以b_PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)...

    C++ CPP C++语言开发 PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中--) PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:     ...

  2. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  3. hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...

  4. UVa 11388 - GCD LCM

    题目大意:给出两个数的最大公约数G和最小公倍数L,求出这两个数. 根据a*b = GCD * LCM,然后枚举判断就好了. 1 #include <cstdio> 2 typedef un ...

  5. GCD and LCM Aizu - 0005(辗转相除)+GCD LCM Inverse POJ - 2429(java或【Miller Rabin素数測试】+【Pollar Rho整数分解】)

    题目:GCD and LCM Aizu - 0005 Write a program which computes the greatest common divisor (GCD) and the ...

  6. 牛客挑战赛47 A 一道GCD问题

    牛客挑战赛47 A 一道GCD问题 思路参考牛客上的题解: 根据多维的更相减损术得gcd(x,y,z)=gcd(x,y−x,z−y)得 gcd(a1+k,a2+k,a3+k-,an+k)=gcd(a1 ...

  7. C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学C组 第一场(2020.7.5) 题目+题解

    C/C++描述 第十一届蓝桥杯省赛 第一场(2020.7.5) 题目+题解   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓 ...

  8. POJ2429 GCDLCM Inverse(整数分解,由GCD+LCM求a,b)

    POJ2429 GCD&LCM Inverse(整数分解,由GCD+LCM求a,b) 分类: 数论 2013-02-12 22:00  180人阅读  评论(1)  收藏  举报 题目:GCD ...

  9. 一道魔性的贪心题目(随意吐槽)

    今天是小浩算法 "365刷题计划" 第101天 .分享一道很魔性的题目(很多槽点),也是一道入门级别的贪心算法题目. 01 PART 分发饼干 贪心算法(又称贪婪算法)是指,在对问 ...

最新文章

  1. APPIUM Android 定位方式
  2. 牛逼! IDEA 2020 要本土化,真的是全中文了!
  3. linux-2.6.
  4. python 局域网通信_python实现局域网内实时通信代码
  5. 形容计算机专业好句子,关于形容专业水平高的句子大全 精于专业的名言警句...
  6. LeetCode 85.最大矩形
  7. mount: RPC: Unable to receive; errno = Connection refused 的解决方法
  8. 【故障分析】基于matlab轴承故障仿真信号时域波形图+幅度谱图【含Matlab源码 123期】
  9. PDF有编辑密码怎么办?该怎么去除
  10. 安装JDK与配置java环境变量
  11. 《CSS 揭秘》每章详细读书笔记
  12. 全国省市县数据库脚本
  13. 关于触摸板设备USB映射虚拟桌面的VID与PID
  14. openerp mysql_openerp 经典收藏 Openerp开发进销存系统完毕总结(转载)
  15. 解决IntelliJ IDEA Properties中Unused property提示
  16. 论文阅读《A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Es》
  17. OCR手写数字识别什么软件好用?介绍一种
  18. 什么是嵌入式服务器?为什么使用嵌入式服务器?
  19. 如何用html5做个人中心,个人中心页面从思考到设计全过程
  20. SSD硬盘的4K对齐

热门文章

  1. 第三次学JAVA再学不好就吃翔(part8)--基础语法之运算符
  2. 走近分形与混沌(part13)--自然现象就其本质来说,是复杂而非线性的
  3. 机器学习-集成学习:随机森林(Random Forest)
  4. created不能异步_mpvue里created里异步请求结果,如何在beforeMount里获取到呢
  5. SAP Commerce Cloud 产品主数据读取的单步调试
  6. Chrome 开发者工具 live expression 的用法
  7. yarn install 遇到的错误消息 - Error EPERM operation not permitted, open .yarnrc
  8. SAP Spartacus里的StorefrontConfig静态类型
  9. SpringBoot启动时就会自动去连接mongdo DB指向的url
  10. SAP Analytics Cloud Smart Discovery不支持具有exception aggregation设置的模型