解题思路:这道题目有可能a[i],两两不互质,所以直接用中国剩余定理肯定是不对的。。这里考虑非互质的情况

问题描述:给出bi,ni的值,且n1, n2, n3,…, ni两两之间不一定互质,求Res的值? 
解:采用的是合并方程的做法。 
这里将以合并第一第二个方程为例进行说明 
由上图前2个方程得(设k1、k2为某一整数):

这里实际上是利用了一种迭代的思想,前两个方程合并成一个新的模方程,然后再与第三个合并.......,一直到最后一个方程,最后可以求出解来。。注意这里为了求出最小非负整数解,采用了很多技巧。。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;int gcd(int a,int b,int &x,int &y)
{if(a == 0 && b == 0) return -1;if(b == 0){x = 1;y = 0;return a;}int d = gcd(b,a%b,y,x);y -= a/b*x;return d;
}int main()
{int n,m,t,m1,m2,r1,r2,flag;int a[11],b[11];cin>>t;while(t--){cin>>n>>m;for(int i = 0; i < m; i++)cin>>a[i];for(int i = 0; i < m; i++)cin>>b[i];flag = 0; m1 = a[0]; r1 = b[0];for(int i = 1; i < m; i++){int x,y;m2 = a[i]; r2 = b[i];int d = gcd(m1,m2,x,y);int c = r2-r1;if(c % d){flag = 1;break;}int tmp = m2 / d;x = (c / d * x % tmp + tmp) % tmp;r1 = r1 + x * m1;m1 = m1 / d * m2;}if(flag || n < r1) cout<<0<<endl;else{int ans = (n - r1) / m1 + 1;  //m1为ai的最小公倍数,凡是m1*i+r1的都是符合要求的数,其中r1最小  if(r1 == 0) ans--;        //要求是正整数  cout<<ans<<endl;}}return 0;
}

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

  1. hdu 3579(中国剩余定理非互质)

    解题思路:这道题目因为不一定是互质的,所以直接套用中国剩余定理肯定是错的,,这里采用的是非互质的方法...之前的博客上面有详细的证明过程和算法,这里就不罗嗦了..但是这道题目在输出的时候有特定的要求, ...

  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. [基础数论]CRT中国剩余定理(模数互质与不互质)

    文章目录 参考 模数互质 分析 例题 模数不互质 分析 例题 后记 参考 中国剩余定理(Chinese remainder theorem,简称CRT)即孙子定理,最早可见于中国南北朝时期(公元5世纪 ...

  9. 中国剩余定理模数不互素的情况

    中国剩余定理 模数不互素的情况 当中国剩余定理在应用中模数不互素时,在求解MiM_iMi​对模数mim_imi​的逆元Mi′M_i'Mi′​时可能会报错说:两个数不是互素的,无法进行求解逆元的操作(我 ...

最新文章

  1. 普渡大学李攀:好的图表示到底是什么?
  2. 云炬Android开发笔记 5-7网络框架优化与完善
  3. Fiddler学习之——对Android应用进行抓包
  4. LeetCode Unique Paths
  5. 容器学习 之 容器的网络类型(十二)
  6. oracle 试图访问已经在使用的事物处理临时表,解决ORA-14450:试图访问已经在使用的事务处理临时表...
  7. @SpringBootApplication揭秘
  8. linux搭建redis
  9. Ajax请求中的Redirect()
  10. ubuntu 双击打不开软件或者创建的快捷方式
  11. union all关联两个不相关的表,按时间排序
  12. (引用)Python 元素、元组、列表、字典的区别
  13. css3图片上下浮动动画
  14. 【Python】详解 collections.Counter
  15. maya python 游戏与影视编程指南pdf_Maya Python 游戏与影视编程指南
  16. EasyNLP 发布融合语言学和事实知识的中文预训练模型 CKBERT
  17. Hyper-V 的用途与安装
  18. cos41度用计算机怎么算,用电监察计算(精品)
  19. notepad++无法安装插件问题
  20. 【转】在win10接双显示器(扩展模式)怎么把鼠标游标切换到第二台显示器上?

热门文章

  1. 华农保险 × 神策数据 OpenDay:保险如何从 0 到 1 落地数字化转型?
  2. 流利说签约神策数据,打造智能时代 Top 级在线英语学习平台
  3. C+ 轮融资发布会抽奖名单公布,还有 20 万礼物正在路上
  4. 证券业震荡,数字化智能化变革、升级与突破或是新生力量(附案例)
  5. USACO翻译:USACO 2014 DEC Silver三题
  6. [BZOJ] 3191 [JLOI2013]卡牌游戏
  7. Java学习之Iterator(迭代器)的一般用法(转)
  8. 使用C语言中的宏来定位出错信息
  9. 网络钓鱼者钓到威胁情报公司的身上 黑客惨遭溯源
  10. 高度平衡树 -- AVL 树