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

中国剩余定理互质版

     设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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

aix 的c库为什么都是静态库_卢卡库:若梅罗、莱万都在努力突破极限,为什么我不能做到呢...

直播吧12月8日讯 北京时间周四凌晨的欧冠小组赛末轮比赛&#xff0c;国米将在主场迎战顿涅茨克矿工。目前&#xff0c;蓝黑军团依然保留着些许出线希望。在这场比赛之前&#xff0c;国米射手卢卡库接受了《法国足球》的采访&#xff0c;他谈论了和孔蒂的关系、和劳塔罗的搭档以…

便携式不锈钢管道焊接机器人_304不锈钢管居然可以发黑?

大家好&#xff0c;我是圣联达不锈钢管材管件孙立成。今天有伙伴们问我&#xff0c;自己使用的304不锈钢管表面怎么发黑了。带着这个问题&#xff0c;今天我特意去梳理了有关304发黑的缘故及其解决方法。304不锈钢管实际上按照正常生产流程&#xff0c;好的304不锈钢管加工制做…

jrockit_Java堆空间– JRockit和IBM VM

jrockit本文将为您提供JRockit Java堆空间与HotSpot VM的概述。 它还将为您提供有关JRockit和HotSpot的Oracle未来计划的一些背景知识。 Oracle JRockit VM Java堆&#xff1a;2个不同的内存空间 -Java堆&#xff08;YoungGen和OldGen&#xff09; -本机内存空间&#xff08;…

检验例题_高考必考|化学工艺流程之物质的分离提纯及检验鉴别,轻松拿分

嗨&#xff0c;小器来喽&#xff01;今天给大家带来的资料依旧是化学的工艺流程的相关知识&#xff0c;因为小器知道在这部分内容中大家是很容易丢分的&#xff0c;都是基础知识不扎实的原因&#xff0c;所以给大家的资料都是从易到难的安排还有专属高考相关例题&#xff0c;简…

三态门三个状态vhdl_温故知新,高阻态和三态门

欢迎FPGA工程师加入官方微信技术群高阻态高阻态这是一个数字电路里常见的术语&#xff0c;指的是电路的一种输出状态&#xff0c;既不是高电平也不是低电平&#xff0c;如果高阻态再输入下一级电路的话&#xff0c;对下级电路无任何影响&#xff0c;和没接一样&#xff0c;如果…

口译员设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …

「Unity」UGUI的Text实现首行缩进的办法

我的Unity版本&#xff1a;5.3.5f1 直接说正事 Unity的Text组件&#xff0c;想实现代码拿到一段话&#xff0c;在前面加个缩进&#xff0c;让之后的字符依次后移。 有人觉得很简单&#xff0c;然后就这样写了&#xff1a; 但是尝试过的人就会发现&#xff0c;如果用代码在最前…

在Eclipse中配置Tomcat7.0

为了在Eclipse中进行struts2的测试,才发现自己机器上的Eclipse没有集成Tomcat,在网上找了半天&#xff0c;不是这个插件没有下载地址&#xff0c;就是那个有好多注意事项或者版本问题。结果&#xff0c;自己到tomcatforEclipse的插件的网上直接下载了一个&#xff0c;按照提供的…

Datepicker

本文翻译自官网&#xff1a; https://angular-ui.github.io/bootstrap 目录&#xff1a; 1. DatePicker 2. DatePicker popup 一、DatePicker https://angular-ui.github.io/bootstrap/#/datepicker 1. 三种模式 Datepicker是灵活&#xff0c;完全可定制的。它有3种模式&#…

cobertura 使用_使用Cobertura,JUnit,HSQLDB,JPA涵盖您的测试

cobertura 使用你好&#xff01;你好吗&#xff1f; 今天让我们谈谈一个非常有用的工具&#xff0c;名为“ Cobertura”。 该框架与我们在另一篇文章中看到的Emma框架具有相同的功能。 Cobertura和Emma之间的主要区别在于Cobertura显示带有图形的简历页面。 如果要查看有关此…

摇杆控制方向原理_图文全面讲解多种方向控制阀的原理和区别....

液压阀是用来控制液压系统中油液的流动方向或调节其流量和压力的。方向控制阀作为液压阀的一种&#xff0c;利用流道的更换控制着油液的流动方向单向型方向控制阀是只允许气流沿一个方向流动的方向控制阀&#xff0c;如单向阀、梭阀、双压阀等换向型方向控制阀是可以改变气流流…

原型设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …

laravel 控制器中使用中间件_在 Laravel 中使用 Slack 进行异常通知

php中文网最新课程每日17点准时技术干货分享异常处理是软件开发过程中无法逃避的问题。对于一套设计良好代码高效的程序&#xff0c;出现异常的可能性会比较低&#xff0c;但这并不意味着不会出现异常,有些异常甚至会引起严重的后果&#xff0c;所以如何及时的发现程序中的异常…

[转]ListView学习笔记(一)——缓存机制

要想优化ListView首先要了解它的工作原理&#xff0c;列表的显示需要三个元素&#xff1a;ListView、Adapter、显示的数据&#xff1b; 这里的Adapter就是用到了适配器模式&#xff0c;不管传入的是什么View在ListView中都能显示出来。 下面简单说下上图的原理&#xff1a; 1、…

golang反编译_【Golang】脱胎换骨的defer(一)

Go语言的defer是一个很方便的机制&#xff0c;能够把某些函数调用推迟到当前函数返回前才实际执行。我们可以很方便的用defer关闭一个打开的文件、释放一个Redis连接&#xff0c;或者解锁一个Mutex。而且Go语言在设计上保证&#xff0c;即使发生panic&#xff0c;所有的defer调…

cad填充图案乱理石_CAD软件中如何自定义CAD填充图案?

在使用浩辰CAD软件绘制完成图纸后&#xff0c;发现自己绘制的CAD图纸没有做好区域分割&#xff0c;显得特别乱。这个时候该怎么办呢&#xff1f;快试试CAD填充图案吧&#xff01;接下来就由小编来给大家介绍一下浩辰CAD软件中自定义CAD填充图案的操作教程吧&#xff01;浩辰CAD…

单例设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …

ansi编码转换_8b/1b编码是个什么东东

使用串行比并行总线可以节省更多的布线空间&#xff0c;芯片、电缆等的尺寸可以做得更小&#xff0c;同时传输速率更高。但是&#xff0c;在很多数字系统如CPU、DSP、FPGA等内部&#xff0c;进行数据处理的最小单位都是Byte&#xff0c;即8个bit&#xff0c;如何把一个或多个By…

使用CSDN云服务搭建一个WordPress 个人站点(详细教程)

目录 前言 站点效果图 搭建服务的一些准备工作 第一步。进入到云服务我的账号模块&#xff0c;创建一个项目&#xff0c; 第二步&#xff0c;先免费领取一台云主机&#xff0c; 第三步&#xff0c;进入云主机控制台 搭建站点操作步骤 第一步&#xff0c;登录云主机 第二…

使用CSDN云服务搭建一个WordPress 个人站点(视频教程)

目录 前言 视频教程 文字版教程 云主机体验地址 官方文档 前言 六一儿童节体验了一下CSDN云主机相关的服务&#xff0c;感觉最近官方最近变化很大&#xff0c;业务范围很广&#xff0c;这里简单体验了一下云主机&#xff0c;给大家分享一点心得&#xff0c;希望对大家有所启…