news 2026/4/18 11:31:57

信息学奥赛一本通 1634:【例 4】曹冲养猪 | 洛谷 P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
信息学奥赛一本通 1634:【例 4】曹冲养猪 | 洛谷 P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪

【题目链接】

ybt 1634:【例 4】曹冲养猪
洛谷 P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪

【题目考点】

1. 中国剩余定理

有线性同余方程组:
{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) ⋮ x ≡ a n ( m o d m n ) \begin{cases} x \equiv a_1 \pmod{m_1} \\ x \equiv a_2 \pmod{m_2} \\ \vdots \\ x \equiv a_n \pmod{m_n} \end{cases}xa1(modm1)xa2(modm2)xan(modmn)
其中m 1 , m 2 , . . . , m n m_1, m_2, ..., m_nm1,m2,...,mn互质。
中国剩余定理可以求解以上线性同余方程组。

  1. M = m 1 m 2 . . . m n M=m_1m_2...m_nM=m1m2...mn,为m 1 m_1m1m n m_nmn的乘积。

  2. q i = M m i q_i=\dfrac{M}{m_i}qi=miM

  3. 线性同余方程组的解为
    x = ∑ i = 1 n a i q i ( q i − 1 m o d m i ) x=\sum_{i=1}^na_iq_i(q_i^{-1} \bmod m_i)x=i=1naiqi(qi1modmi)

证明:
对于任一同余方程x ≡ a k ( m o d m k ) x\equiv a_k \pmod{m_k}xak(modmk)
∑ i = 1 n a i q i ( q i − 1 m o d m i ) m o d m k \sum_{i=1}^na_iq_i(q_i^{-1} \bmod m_i)\bmod m_ki=1naiqi(qi1modmi)modmk

  • i ≠ k i\neq ki=k时,由于m k ∣ M m_k\mid MmkM,且g c d ( m k , m i ) = 1 gcd(m_k, m_i)=1gcd(mk,mi)=1,所以m k ∣ M m i m_k\mid \frac{M}{m_i}mkmiM,即m k ∣ q i m_k\mid q_imkqi
    所以a i q i ( q i − 1 m o d m i ) m o d m k = 0 a_iq_i(q_i^{-1} \bmod m_i)\bmod m_k = 0aiqi(qi1modmi)modmk=0
  • i = k i=ki=k时,a k q k ( q k − 1 m o d m i ) m o d m k = a k m o d m k a_kq_k(q_k^{-1} \bmod m_i)\bmod m_k=a_k\bmod m_kakqk(qk1modmi)modmk=akmodmk
    所以∑ i = 1 n a i q i ( q i − 1 m o d m i ) m o d m k = a k m o d m k \sum_{i=1}^na_iq_i(q_i^{-1} \bmod m_i)\bmod m_k=a_k\bmod m_ki=1naiqi(qi1modmi)modmk=akmodmk
    即当x = ∑ i = 1 n a i q i ( q i − 1 m o d m i ) x=\sum_{i=1}^na_iq_i(q_i^{-1} \bmod m_i)x=i=1naiqi(qi1modmi)时满足x ≡ a k ( m o d m k ) x\equiv a_k \pmod{m_k}xak(modmk)
    因此x = ∑ i = 1 n a i q i ( q i − 1 m o d m i ) x=\sum_{i=1}^na_iq_i(q_i^{-1} \bmod m_i)x=i=1naiqi(qi1modmi)满足该线性同余方程组。
2. 乘法逆元

乘法逆元相关知识见:洛谷 P1082 [NOIP 2012 提高组] 同余方程

【解题思路】

设共有x xx头猪,建a i a_iai个猪圈,b i b_ibi头猪没有去处,那么满足x m o d a i = b i x\bmod a_i = b_ixmodai=bi,写成同余方程,为x ≡ b i ( m o d a i ) x\equiv b_i \pmod{a_i}xbi(modai)
那么本题需要求该同余方程组的解
{ x ≡ b 1 ( m o d a 1 ) x ≡ b 2 ( m o d a 2 ) ⋮ x ≡ b n ( m o d a n ) \begin{cases} x \equiv b_1 \pmod{a_1} \\ x \equiv b_2 \pmod{a_2} \\ \vdots \\ x \equiv b_n \pmod{a_n} \end{cases}xb1(moda1)xb2(moda2)xbn(modan)
可以使用中国剩余定理求解。
注意,在求解过程中表达式的值可能会超出long long类型的表示范围,应该将表达式的值强转为__int128类型(128位整型),完成计算。

【题解代码】

解法1:中国剩余定理
#include<bits/stdc++.h>usingnamespacestd;#defineN15#defineMOD(a,b)(((a)%(b)+(b))%(b))//数学取模 a mod btypedeflonglongLL;voidexgcd(LL a,LL b,LL&x,LL&y)//扩展欧几里得定理{if(b==0){x=1,y=0;return;}exgcd(b,a%b,y,x);y-=a/b*x;}LLinv(LL a,LL m)//求a模m的逆元{LL x,y;exgcd(a,m,x,y);returnMOD(x,m);}LLCRT(LL*a,LL*m,LL n)//x≡a[i] (mod m[i]) i:[1, n]{LL M=1,res=0;for(inti=1;i<=n;++i)M*=m[i];for(inti=1;i<=n;++i)res=(res+(__int128_t)a[i]*M/m[i]*inv(M/m[i],m[i]))%M;returnres;}intmain(){LL n,a[N],b[N];cin>>n;for(inti=1;i<=n;++i)cin>>a[i]>>b[i];cout<<CRT(b,a,n);return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:02:53

30、智能家庭的数据来源

智能家庭的数据来源 1. CD 数据 在播放 CD 时,我们通常希望保留两项信息:曲目名称和专辑封面扫描图。曲目名称较易获取,且大多数抓轨软件都能处理;而专辑封面扫描图则较难获取,不过许多基于新媒体中心的软件已开始支持。 1.1 确定曲目名称 确定 CD 曲目名称的过程如下…

作者头像 李华
网站建设 2026/4/18 8:44:30

34、消息控制与传输系统详解

消息控制与传输系统详解 1. 日志与警报输出 1.1 Web 日志 Web 日志仅用于输出,它与标准日志记录器类似,但将输出写入不同的文件 /var/log/minerva/weblog 。 1.2 窗口警报 窗口警报同样仅用于输出,它使用基本的 kdialog 程序在 X Window 终端上显示消息。现有脚本会…

作者头像 李华
网站建设 2026/4/18 8:45:56

14、从 SAS 访问共享可执行库的全面指南

从 SAS 访问共享可执行库的全面指南 在使用 SAS 进行数据处理和分析时,访问共享可执行库是一项非常有用的功能。它可以让我们利用外部的代码库,扩展 SAS 的功能。下面将详细介绍从 SAS 访问共享可执行库的相关内容。 1. C 数据类型的内存分配 在了解如何访问共享库之前,我…

作者头像 李华
网站建设 2026/4/17 21:49:08

19、定制SAS窗口环境:资源助手与工具箱的全方位指南

定制SAS窗口环境:资源助手与工具箱的全方位指南 1. 资源助手简介 资源助手(Resource Helper)是一个强大的工具,可用于定制SAS交互式界面的按键定义和颜色。它会创建SAS资源定义,并将其存储在资源管理器能够找到的位置。使用资源助手保存的资源设置,将在下次启动SAS会话…

作者头像 李华
网站建设 2026/4/18 7:02:03

高级用户必备:ComfyUI自定义节点扩展功能全揭秘

高级用户必备&#xff1a;ComfyUI自定义节点扩展功能全揭秘 在生成式AI席卷创意产业的今天&#xff0c;越来越多设计师、开发者和独立创作者不再满足于“输入提示词 → 点击生成”的黑盒模式。他们想要知道图像究竟是如何一步步被创造出来的&#xff0c;希望对每一个环节拥有绝…

作者头像 李华
网站建设 2026/4/18 5:01:20

43、Linux 邮件服务器:POP3、IMAP 与 Dovecot 全解析

Linux 邮件服务器:POP3、IMAP 与 Dovecot 全解析 在当今数字化的时代,邮件服务是企业和个人日常沟通中不可或缺的一部分。在 Linux 系统中,POP3 和 IMAP 协议为邮件的接收提供了强大的支持,而 Dovecot 作为一款优秀的邮件服务器软件,更是备受青睐。本文将详细介绍 POP3 和…

作者头像 李华