首页 > 其他分享 >扩展中国剩余定理学习笔记

扩展中国剩余定理学习笔记

时间:2023-02-02 10:56:25浏览次数:65  
标签:剩余 gcd kk 定理 笔记 times cases mod equiv

扩展中国剩余定理

模板题:P4777

前置芝士:扩展欧几里得(exgcd)

不需要中国剩余定理

问题:求

\(\begin{cases}x\equiv m_1\ (\mod\ a_1)\\x\equiv m_2\ (\mod\ a_2)\\ ...\\x\equiv m_3\ (\mod\ a_3)\end{cases}\)

的最小整数解

我们可以先关注前两个方程

简单转换,可得

\(\begin{cases}x=k_1\times a_1+m_1\\x=k_2\times a_2+m_2\end{cases}\)

所以

\(k_1 \times a_1+m_1 = k_2\times a_2+m_2\)
\(k_1\times a_1-k_2\times a_2 = m_2-m_1\)

标准的拓欧板子,我们先用拓欧求出\(k_1\)的一个特解\(kk_1\)

接着发现\(k_1\)的通解为\(kk_1+k\times \frac{a_2}{\gcd(a_1,a_2)}\)

带入\(x=k_1 \times a_1+m_1\)

\(x=(kk_1+k\times \frac{a_2}{\gcd(a_1,a_2)})\times a_1+m_1\)
\(\ \;\,\,=a_1\times kk_1+m_1+k \times \operatorname{lcm}(a_1,a_2)\)

现在很明显了,让 \(a_1\times kk_1+m_1\) 作新的\(m\) , \(\operatorname{lcm}(a_1,a_2)\) 作新的\(a\)

将这个柿子和接下来的柿子滚雪球一样一直合并,最后得出的最终方程中的\(m\)即为答案,记得化成最小正整数

注意点:

\(1.\) 若合并过程中出现无解,即在求解特解\(kk1\)时出现\(\gcd(a_1,a_2) \nmid (m_2-m_1)\)整个方程就都无解,直接退出(当然这里保证有解)

\(2.\) 有一个大数据要__int128或龟速乘,快速乘之类的,请注意

代码被我吃了

标签:剩余,gcd,kk,定理,笔记,times,cases,mod,equiv
From: https://www.cnblogs.com/StevenZC/p/17085244.html

相关文章

  • 做题笔记:次短路(P2865)
    虽然算法难度达不到记笔记的级别但由于个人认为较为重要,故作记录。抓住最短路和次短路的一个区别,最少一条边不同。所以不妨正反(\(1\)和\(n\))分别跑最短路。然后枚......
  • (笔记)linux 之.service文件简介
     一、什么是.service文件?Linux中.service文件是某项服务对应的配置文件,可用于systemd管理和控制的服务的设置。.service文件通常包含3个模块,即[Unit]控制单元,表示启动......
  • 使用kubeadm安装k8s1.26.0笔记2
    一.安装版本Kubeadm使用cni方式安装版本:v1.26.0 二.机器准备1.机器规格本次安装1个master和1个node节点Master:192.168.64.6Node:192.168.64.7规则:CPU:2内存:4G系......
  • 读Java8函数式编程笔记08_测试、调试和重构
    1. Lambda表达式的单元测试1.1. 单元测试是测试一段代码的行为是否符合预期的方式1.2. Lambda表达式没有名字,无法直接在测试代码中调用1.2.1. 将Lambda表达式放入......
  • SpringBoot学习笔记 - 构建、简化原理、快速启动、配置文件与多环境配置、技术整合案
    【前置内容】Spring学习笔记全系列传送门:Spring学习笔记-第一章-IoC(控制反转)、IoC容器、Bean的实例化与生命周期、DI(依赖注入)Spring学习笔记-第二章-注解......
  • 「matlab学习笔记」MATLAB程序流程控制
    中国大学MOOC科学计算与MATLAB语言(点击此处跳转)MATLAB官方文档(点击此处跳转)3.1程序文件脚本文件和函数文件在MATLAB中程序文件的扩展名为.m,所以程序文件也称为M文件......
  • Per-Pixel Classification is Not All You Need for Semantic Segmentation论文阅读笔
    作者的解读:https://www.zhihu.com/search?type=content&q=MaskFormer摘要现有的语义分割方法将分割视为逐像素的分类,本文提出了MaskFormer,把分割转化为预测一系列的mask......
  • 离散化学习笔记
    本来应该配着一道题讲的因为太晚了就先咕咕了挖个坑虽然大概率应该不会填离散化简单来说就是当你需要用数组统计一些数的出现次数但数据范围过大(如1e9)无法使用数组存......
  • 线段树学习笔记
    本条目持续更新中线段树1:建树单点修改区间求和关于线段树:假如我们有这样一个数列33280721那我们就可以建一个线段树大概长这样:由图可知编号为i的左......
  • 数论笔记7-一元高次同余方程与多元同余方程
    这里我们先讨论一般情况(但一点也不简单,有很多厉害的定理),二次剩余之后再说.1.一元同余方程的具体解法我们考虑一般的一元同余方程\(f(x)\equiv0\pmodm\),容易......