中国剩余定理互质版

设m1,m2,m3,...,mk是两两互素的正整数,即gcd(mi,mj)=1,i!=j,i,j=1,2,3,...,k.

则同余方程组:

x = a1 (mod n1)

x = a2 (mod n2)

...

x = ak (mod nk)

模[n1,n2,...nk]有唯一解,即在[n1,n2,...,nk]的意义下,存在唯一的x,满足:

x = ai mod [n1,n2,...,nk], i=1,2,3,...,k。

解可以写为这种形式:

x = sigma(ai* mi*mi') mod(N)

      其中N=n1*n2*...*nk,mi=N/ni,mi'为mi在模ni乘法下的逆元。

例题 codevs 3990 中国余数定理2

/*
作者:Best
题目:p3990 中国余数定理 2
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
ll n,l,r,b[11],m[11],M[11],Mi[11],s=1,ans,sum,x,y;
void E_gcd(ll a,ll b)
{if(!b){x=1;y=0;return;}E_gcd(b,a%b);int tmp=x;x=y;y=tmp-a/b*y;
}
int main()
{cin>>n>>l>>r;for(int i=1;i<=n;i++)cin>>m[i]>>b[i],s*=m[i];for(int i=1;i<=n;i++)M[i]=s/m[i];for(int i=1;i<=n;i++){x=y=0;E_gcd(M[i],m[i]);Mi[i]=(x+m[i])%m[i];}for(int i=1;i<=n;i++)ans=(ans+M[i]*Mi[i]%s*b[i])%s;if(ans<l||ans>r)ans=sum=0;else sum=(r-ans)/s+1;cout<<sum<<endl<<ans;return 0;
}

中国剩余定理非互质版

例题 HUD 1573 X问题

#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
ll T,n,m,a[11],b[11],x,y,gcd;
void E_gcd(ll ai,ll bi)
{if(!bi){x=1;y=0;gcd=ai;return;}E_gcd(bi,ai%bi);ll tmp=x;x=y;y=tmp-ai/bi*y;
}
int main()
{cin>>T;while(T--){cin>>n>>m;for(int i=1;i<=m;i++)cin>>a[i];for(int i=1;i<=m;i++)cin>>b[i];int falg=0;ll a1=a[1],b1=b[1];for(int i=2;i<=m;i++){ll a2=a[i],b2=b[i];E_gcd(a1,a2);if((b2-b1)%gcd){falg=1;break;}x*=((b2-b1)/gcd);ll t=a2/gcd;x=(x%t+t)%t;b1+=a1*x;a1=(a1*a2/gcd);b1=(b1%a1+a1)%a1;}if(falg||b1>n)cout<<"0"<<endl;else cout<<(n-b1)/a1+1-(!b1?1:0)<<endl;}
}

转载于:https://www.cnblogs.com/yanlifneg/p/5658601.html

中国剩余定理 互质与非互质版本相关推荐

  1. 中国剩余定理以及扩展中国剩余定理

    中国剩余定理必须有两两互质的条件:而扩展中国剩余定理没有限制(可能互质,也能不互质).所以只记忆一个扩展中国剩余定理的板子就行. 代码 #include <iostream> #inclu ...

  2. ACM数论----中国剩余定理与拓展中国剩余定理

    一.问题引入: 在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问 ...

  3. 中国剩余定理扩展中国剩余定理 入门详解

    中国剩余定理 例题 已知以下 n n n同余方程(所有 m i m_i mi​互质): x ≡ a 1 ( m o d m 1 ) x≡a_1(\mod m_1) x≡a1​(modm1​) x ≡ ...

  4. 中国剩余定理(孙子定理)学习笔记

    参考博客:https://blog.csdn.net/S_999999/article/details/89298179 啥是中国剩余定理 孙子定理是中国古代求解一次同余式组(见同余)的方法.是数论中 ...

  5. 数论——中国剩余定理及其扩展详解

    文章目录 概述 中国剩余定理扩展 例题 总结 概述 引入: 一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作<孙子算经>卷下第二十六题,叫做"物不知数&qu ...

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

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

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

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

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

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

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

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

最新文章

  1. Python是否具有字符串“包含”子字符串方法?
  2. 没人教的项目管理方法之(明白该干什么) 二、项目章程如何写(下)
  3. 利用Python制作王者荣耀出装小助手,引来了老板的注意!
  4. 产品经理需要向上思考
  5. 浏览器对同一IP的最大并发请求数记录
  6. 物理层上/下行每个功能块需要的信息
  7. JavaScript里的函数加或不加括号的区别
  8. 红警 1 游戏开源,代码非常规范,网友:秀色可餐
  9. php devel 5.3.3 26,php-5.3.27安装
  10. 打包deb时,实际上是两层包名目录的结构
  11. CSDN没有C币如何下载文章?
  12. 计算机网络实验教程钱德沛_计算机网络实验教程完成版.pdf
  13. 计算机音乐数字乐谱周杰伦,周杰伦的歌《安静》的数字乐谱是什么??
  14. 网易云音乐8.0版本背后的野心
  15. 【踩坑笔记】java使用poi导出word文档换行
  16. cocos2dx 游戏中内存优化
  17. echarts折线图默认显示最后一个点的数据
  18. 亚马逊和Global Optimism欢迎汉高和昕诺飞加入《气候宣言》
  19. 根据励磁电感、谐振电感(漏感)、功率等级、频率设计LLC变换器的变压器
  20. 2020年长沙四大名校高考成绩统计

热门文章

  1. mfc从文件中读取数据_Python 中的 bytes、str 以及 unicode 区别
  2. eve模拟器_《Re:从零开始的新伊甸征程》一步到位教你下载EVE手游
  3. 四步创建TCP客户端
  4. C语言通过printf()设置输出显示方式
  5. 730阵列卡支持多大硬盘_凯捷月销破2万,配6座头等舱空间,到底有多舒服?试驾了才知道...
  6. oracle42997,oracle与db2的比较
  7. apache geode项目结构_Apache Flink-基于Java项目模板创建Flink应用(流计算和批计算)...
  8. php zip怎么安装,php如何安装zip模块?(方法介绍)
  9. python服务器搭建 实战_实战讲解:如何用Python搭建一个服务器
  10. RS232与串口通信的4个注意事项详解