解题思路:这道题目因为不一定是互质的,所以直接套用中国剩余定理肯定是错的,,这里采用的是非互质的方法。。。之前的博客上面有详细的证明过程和算法,这里就不罗嗦了。。但是这道题目在输出的时候有特定的要求,要求是最小正整数,所以出现0的情况肯定是错的。如果出现0的情况,就取它们的最小公倍数即可。。

另外,多个数求最小公倍数的方法同样还是 a1*a2*a3*......*an / gcd(a1,a2,a3,......,an)。

AC:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;__int64 extend_gcd(__int64 a,__int64 b,__int64 &x,__int64 &y)
{if(a == 0 && b == 0) return -1;if(b == 0){x = 1; y = 0;return a;}__int64 d = extend_gcd(b,a%b,y,x);y -= a/b*x;return d;
}__int64 gcd(__int64 a,__int64 b)
{return b == 0 ? a : gcd(b,a%b);
}void Chinese_Remainder(int m,int *a,int *b)
{static int cas = 1;__int64 n1,n2,b1,b2,flag = 0;n1 = a[0]; b1 = b[0];for(int i = 1; i < m; i++){n2 = a[i]; b2 = b[i];__int64 c = b2 - b1;__int64 x,y,d;d = extend_gcd(n1,n2,x,y);if(c % d){flag = 1;break;}__int64 t = n2 / d;x = (c /d * x % t + t) % t;b1 = b1 + x * n1;n1 = n1 / d * n2;}cout<<"Case "<<cas++<<": ";if(flag)cout<<-1<<endl;else {if(b1 == 0 && m > 1){b1 = a[0];__int64 ans = 1;for(int i = 1; i < m; i++)b1 = gcd(a[i],b1);for(int i = 0; i < m; i++)ans *= a[i];b1 = ans / b1;}else if(b1 == 0 && m == 1)b1 = a[0];cout<<b1<<endl;}
}int main()
{int t,n,a[6],b[6];cin>>t;while(t--){cin>>n;for(int i = 0; i < n; i++)cin>>a[i];for(int i = 0; i < n; i++)cin>>b[i];Chinese_Remainder(n,a,b);}return 0;
}

hdu 3579(中国剩余定理非互质)相关推荐

  1. hdu 1573(中国剩余定理非互质情况)

    解题思路:这道题目有可能a[i],两两不互质,所以直接用中国剩余定理肯定是不对的..这里考虑非互质的情况 问题描述:给出bi,ni的值,且n1, n2, n3,-, ni两两之间不一定互质,求Res的 ...

  2. 2019牛客暑期多校训练营(第九场)A——The power of Fibonacci(循环节+中国剩余定理(互质)||广义BM)

    链接:https://ac.nowcoder.com/acm/contest/889/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...

  3. 中国剩余定理(互质与不互质的情况)

    前言:这个东西听说好久了,一直想学但是总是看到一半就放弃了,今天咬咬牙,就去研究一下吧. 中国剩余定理: 问题引入 在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二 ...

  4. 中国剩余定理 互质与非互质版本

    中国剩余定理互质版 设m1,m2,m3,...,mk是两两互素的正整数,即gcd(mi,mj)=1,i!=j,i,j=1,2,3,...,k. 则同余方程组: x = a1 (mod n1) x = ...

  5. 中国剩余定理matlab非互质,中国剩余定理模板(互质版和非互质版)

    互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 ...

  6. 数学--数论--HDU1825(积性函数性质+和函数公式+快速模幂+非互质求逆元)

    As we all know, the next Olympic Games will be held in Beijing in 2008. So the year 2008 seems a lit ...

  7. 中国剩余定理求解同余线性方程组(模数互素和非互素的情况)

    参考:http://yzmduncan.iteye.com/blog/1323599 中国剩余定理 中国剩余定理是中国古代求解一次同余方程组的方法,是数论中的一个重要定理. 设m1,m2,m3,... ...

  8. HDU, 3579 Hello Kiki

    题意:--中国剩余定理非互质版 思路:中国剩余定理非互质版 PS:注意只有一个数且余数为0时特判 = =关于互质版中国剩余定理直接copy了模版 剩余定理互质版模版来源:一 二 代码: 1 #incl ...

  9. 扩展中国剩余定理模板

    这就是神奇的非互质版CRT,同余方程组中各个模数可能不互质,如果再用以前互质版的做法就会出错(这个的原因我也没有深究,如果有兴趣的小伙伴懂的话欢迎在评论区里指点本蒟蒻). 对于模数不互质的情况,需要逐 ...

最新文章

  1. Bing Maps Geographic Coverage - Bing地图图像覆盖范围
  2. Altium designer中导入CAD文件
  3. centos7 redis5.0以后版本 集群部署示例
  4. layui导出html到pdf,layui打印html页面转成pdf
  5. MySQL的乱码解决方案
  6. 最新原生nodejs调试器的使用大全详解
  7. 中国羽绒服市场深度调查研究报告
  8. 准备写个linux下的千千静听
  9. 1919获阿里20亿投资,独角兽如何搅动酒饮业格局
  10. 局域网被限速,爱快IP聚合突破限速,网管直呼内行
  11. Turtle 画方形 画圆 画三角形
  12. git使用进阶(一)——工作区和log
  13. 数据传输过程加密方案
  14. 读Redis对比数据库数据进行稽核
  15. Java之父--Gosling
  16. 数据分析案例-四川省旅游景点数据分析
  17. 3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记
  18. pyecharts可视化神器使用与避坑指南
  19. C语言程序设计 飞行小鸟游戏
  20. InfoQ专访“白帽黑客”吴石:两次破解特斯拉的腾讯安全科恩实验室这次为什么瞄准物联网?

热门文章

  1. 神策数据独家丨100% 还原小仙炖 618 私域个性化服务实践
  2. 华润e万家联手神策数据 多维分析助力精益运营
  3. 写一个“特殊”的查询构造器 - (四、条件查询:复杂条件)
  4. YouTube增加社交功能:邀请联系人聊天 可30人群聊
  5. 一个不经意的问题引发的小思考
  6. vue的数组如何存储数据
  7. 1165: 零起点学算法72——首字母变大写
  8. rsync的原理——转载
  9. linux 操作系统安装配置vnc
  10. library at girton