中国剩余定理

  没啥重要的……模板题,中国剩余定理就是解出模线性方程组的一个可行解(好像也是唯一解?)

  这是一种神奇的构造方法……明白了为什么这样构造是对的就行了=。=至于怎么想到这种构造方法的……去问孙子去→_→

 //Vijos 1164
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
using namespace std; int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>'') {if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<='') {v=v*+ch-''; ch=getchar();}
return v*=sign;
}
typedef long long LL;
/*******************tamplate********************/ void exgcd(LL a,LL b,LL &d,LL &x,LL &y){
if(!b){ d=a; x=; y=; }
else { exgcd(b,a%b,d,y,x); y-=x*(a/b); }
}
LL china(int n,int *a,int *m){
LL M=,d,y,x=;
F(i,,n) M*=m[i];
F(i,,n){
LL w=M/m[i];
exgcd(m[i],w,d,d,y);
x=(x+y*w*a[i])%M;
}
return (x+M)%M;
}
int a[],b[];
int main(){
int n=getint();
F(i,,n) a[i]=getint(),b[i]=getint();
printf("%lld\n",china(n,b,a));
return ;
}

最新文章

  1. java ssh 框架下 利用junit4 spring-test进行单元测试
  2. CSS3如何去除 inline block 元素之间多出的空格
  3. 父目录的权限对子目录有没有影响?[Linux]
  4. ini_set 设置php配置项 在windows和linux下的不同
  5. springMVC与struts2的区别
  6. 你真的了解 console 吗
  7. 流媒体开发之-腾讯体育NBA视频点播解析
  8. VS中C++对象的内存布局
  9. JDK1.8源码分析之HashMap(一) (转)
  10. linux软与硬接线连接
  11. jenkins 中集成JNI的坑
  12. SNPs &amp; MAF
  13. HTML学习笔记汇总
  14. 【转载】Linux cgroup资源隔离各个击破之 - io隔离
  15. tedu训练营day01
  16. APP如何进行通信的
  17. 【转】Python之函数进阶
  18. bzoj 4811: [Ynoi2017]由乃的OJ
  19. Linux下jdk&amp;tomcat的安装
  20. WPF System.InvalidCastException: 无法将类型为“System.Windows.Media.Color”的对象强制转换为类型“System.Windows.Media.Brush”。

热门文章

  1. asp.net在网页上显示数据库中的数据
  2. js 获取url 参数
  3. c# SQL CLR 之一
  4. C#中数组、ArrayList和List&lt;T&gt;三者的发展历程
  5. web前端炫酷实用的HTML5应用和jQuery插件
  6. Android BroadcasetReceiver
  7. 怎样按字母顺序(ABCDEF)动态添加控件
  8. IE下无法保存Cookie和Session问题
  9. WPF 界面控件遍历和后台行为绑定写法
  10. 使用Azure portal Create Virtual Machine