【模板】扩展中国剩余定理(EXCRT)
一、题目:
洛谷模板
二、代码:
#include<iostream>
#include<cstdio>
#include<cstring>#define LL long long
#define mem(s,v) memset(s,v,sizeof(s))
#define FILE(s) freopen(s".in","r",stdin);freopen(s".out","w",stdout)using namespace std;
template<class Type>
inline Type read(Type num){Type x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return f*x;
}const int maxn=100005;int n;
LL ai[maxn],bi[maxn];inline LL mult(LL a,LL b,LL p){LL ret=0;for(;b;b>>=1){if(b&1)ret=(ret+a)%p;a=(a+a)%p;}return ret;
}inline LL exgcd(LL a,LL b,LL &x,LL &y){if(b==0){x=1;y=0;return a;}LL d=exgcd(b,a%b,x,y);LL z=x;x=y;y=z-a/b*y;return d;
}inline LL excrt(void){LL x,y;LL M=bi[1],ans=ai[1];for(register int i=2;i<=n;++i){LL a=M,b=bi[i],c=(ai[i]-ans%b+b)%b;LL gcd=exgcd(a,b,x,y),bg=b/gcd;if(c%gcd!=0)return -1;x=mult(x,c/gcd,bg);ans+=x*M;M*=bg;ans=(ans%M+M)%M;}return (ans%M+M)%M;
}int main(){n=read(n);for(register int i=1;i<=n;++i){bi[i]=read(bi[i]);ai[i]=read(ai[i]);}printf("%lld\n",excrt());return 0;
}
转载于:https://www.cnblogs.com/little-aztl/p/9738718.html
【模板】扩展中国剩余定理(EXCRT)相关推荐
- 中国剩余定理(CRT)扩展中国剩余定理(exCRT)
前言 中国剩余定理(也叫孙子定理)并不是很复杂,由于最近用到了,以前学的时候还不写博客,所以现在补一下 中国剩余定理(CRT) 问题 给出nnn个同余方程 x≡a1(modp1)x≡a2(modp2) ...
- [扩展中国剩余定理(EXCRT)]
前言 与 这个 定理 搏斗了 一天终于 把它kill 了 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 进入正题 题目描述 给定 n 组 非负整数 ai,bi,求解关于 x 的方程组 x ≡ a1 (mo ...
- 扩展中国剩余定理 exCRT 学习笔记
前言 由于 \(\{\mathrm{CRT}\}\subseteq\{\mathrm{exCRT}\}\),而且 CRT 又太抽象了,所以直接学 exCRT 了. 摘自 huyufeifei 博客 这 ...
- P4777-[模板]扩展中国剩余定理(EXCRT)
正题 题目链接:https://www.luogu.org/problem/P4777 题目大意 求方程 {x≡a1(modb1)x≡a2(modb2)...x≡an(modbn)\begin{cas ...
- 中国剩余定理(CRT)和扩展中国剩余定理(EXCRT)
Tip:建议读者不要太着急后翻,按照顺序阅读有助于理解 中国剩余定理(CRT) 问题引出 "有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?"即,一个整数除以三余 ...
- [数论]-----中国剩余定理(扩展中国剩余定理)
中国剩余定理 中国剩余定理(CRT)用于求形如: { x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) ⋯ ⋯ x ≡ a k ( m o d m k ) \be ...
- 中国剩余定理 扩展中国剩余定理 模板
中国剩余定理解线性同余线性方程 /*long long gcd(LL a,LL b) {return b==0?a:gcd(b,a%b); }*/ #include<bits/stdc++.h& ...
- 中国剩余定理 扩展中国剩余定理 (模板)
中国剩余定理 && 扩展中国剩余定理 一个整数除以三余二,除以五余三,除以七余二,求这个整数. 例题: 一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % ...
- 数学--数论--中国剩余定理+扩展中国剩余定理(孙子定理)
中国剩余定理 问题 求解同余方程组 其中m1,m2,m3...mkm_1,m_2,m_3...m_km1,m2,m3...mk为两两互质的整数 求x的最小非负整数解 定理 令M=∏i=1kmi ...
- 模线性方程(中国剩余定理+扩展中国剩余定理)
已知一系列除数和模数,求最小的满足条件的数 我们先考虑一般的情况,即模数不互质.(扩展中国剩余定理) 我们考虑两个方程的情况 x%M=R x=k1∗M+Rx=k1 * M+Rx=k1∗M+R x%m= ...
最新文章
- boost::threadpool 调用类成员变量并传入参数 的方法
- go语言的书籍的淘宝调查
- java自带的xml解析,使用Java自带SAX工具解析XML
- PowerDesigner从数据库导入
- C语言关键字----Const
- php 强制刷新,web端实现后退强制刷新功能代码
- java配置环境及安装
- POJ1741 Tree(点分治)
- [转]SQL Server 2005报表服务入门(一)
- 交换机 VLAN配置基础及实例
- IOMMU 虚拟IO地址和物理地址相关联
- 使用iconfont阿里多色矢量图标
- opencv 绘制内切圆
- git如何下载代码:
- glassfish 配置 mysql_GlassFish MySql连接池配置 | 学步园
- 【无极低码】低代码平台开发日记,低代码平台之sql编程
- 国产处理器兆芯可运行Windows,已试制出Intel i5级处理器
- Spring Boot简介,四大核心,特性
- 商城系统春节氛围营造
- RAD Studio破解补丁合集(2018.12.25)
热门文章
- 大学计算机人工智能知识点,人工智能知识点大集锦
- linux获取java环境变量的值,linux获取java环境变量的值
- 知识图谱学习小组学习大纲
- RSA非对称加密算法之公钥和私钥详细介绍
- bat删除计算机用户,自动清除电脑垃圾及删除windows默认共享盘符的批处理bat
- hibernate mysql自定义变量_hibernate如何得到mysql的变量
- equals java的用法_Java ConcurrentLinkedDeque equals()用法及代码示例
- dataloader 源码_pytorch :: Dataloader中的迭代器和生成器应用
- matlab 提取数列里非零_什么!科研交流免费教Matlab?
- 拼数pascal程序