X问题(中国剩余定理不互质情况)

中国剩余定理算法详解(余数互质和不互质) 参考: 中国剩余定理: http://itdocument.com/7701006441/ http://www.cppblog.com/qywyh/archive/2007/08/27/30943.aspx 扩展欧几里得算法: http://blog.youkuaiyun.com/dafang_xu/article/details/50186653 中国剩余定理介绍 在《孙子算经》中有这样一个 阅读详情

X问题

 求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod a[2] = b[2], …, X mod a[i] = b[i], … (0 < a[i] <= 10)。 

Input
输入数据的第一行为一个正整数T,表示有T组测试数据。每组测试数据的第一行为两个正整数N,M (0 < N <= 1000,000,000 , 0 < M <= 10),表示X小于等于N,数组a和b中各有M个元素。接下来两行,每行各有M个正整数,分别为a和b中的元素。
Output
对应每一组输入,在独立一行中输出一个正整数,表示满足条件的X的个数。
Sample Input

3
10 3
1 2 3
0 1 2
100 7
3 4 5 6 7 8 9
1 2 3 4 5 6 7
10000 10
1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9

Sample Output

1
0
3

依然是套用中国剩余定理不互质情况下的模板

然后求出最小正整数解(注意必须要求最小正整数解)

根据通解形式

x=x0+k⋅lcmx=x0+k⋅lcm

只需要解不等式

x0+k⋅lcm≤Nx0+k⋅lcm≤N

k≤N−x0lcmk≤N−x0lcm

即可,注意要判断x0x0必须是小于N的

code:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
bool flag;
ll m[100],a[100],lcm;
ll gcd(ll a,ll b){
    return b ? gcd(b,a%b) : a;
}
ll ex_gcd(ll a,ll b,ll &x,ll &y){
    if(!b){
        x = 1;
        y = 0;
        return a;
    }
    ll g = ex_gcd(b,a%b,y,x);
    y -= a / b * x;
    return g;
}
ll China(ll n){
    ll m1 = m[0],a1 = a[0];
    ll m2,a2,k1,k2,x0,g,c;
    lcm = m[0];
    for(int i = 1; i < n; i++){
        m2 = m[i];
        a2 = a[i];
        c = a2 - a1;
        g = ex_gcd(m1,m2,k1,k2);
        lcm = lcm * m[i] / gcd(lcm,m[i]);
        if(c % g){
            flag = false;
            return 0;
        }
        x0 = k1 * c / g;
        ll t = m2 / g;
        x0 = (x0 % t + t) % t;
        a1 += m1 * x0;
        m1 = m2 / g * m1;
    }
    return a1;
}
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        ll N;
        int n;
        scanf("%lld%d",&N,&n);
        for(int i = 0; i < n; i++) scanf("%lld",&m[i]);
        for(int i = 0; i < n; i++) scanf("%lld",&a[i]);
        flag = true;
        ll ans = China(n);
        if(!flag || ans > N){
            printf("0\n");
        }
        else{
            if(ans <= 0) ans += lcm;
            ans = (N - ans) / lcm + 1;
            printf("%lld\n",ans);
        }
    }
    return 0;
}
[基础数论]CRT中国剩余定理(模数互质与不互质) 文章目录参考模数互质分析例题模数不互质分析例题后记 参考 中国剩余定理(Chinese remainder theorem,简称CRT)即孙子定理,最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下: 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?——《孙子算经》 翻译成数学式子大概就是 x≡2(mod3)x≡2(mo... 阅读详情

相关推荐

中国剩余定理(互质与不互质模版)

FZU1402 中国剩余定理 #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 Extend_Euclid(int64 a, int64 b, int64&x, int64& y) { if(b==0) { x=1,

bo-jwolf的专栏 2570

中国剩余定理(最详细说明 非互质情况)

说明一下这个解法 140满足%3=2,而且是5和7的倍数,也就是说加上140对其他数的取余结果不会有影响 同理,其他的数加上这个数就可以在不影响自生取余的情况下附带满足%3=2的性质 所以把所有这些数加起来就是满足答案的一个解,而在这个时候对于这个得到的数尽可能的消小(减去所有数的公倍数不会改变性质),就是答案 代码: #define D long long...

QAQ 9718

手把手教你用Gazebo和VINS-MONO搞定VIO SLAM仿真(附Realsense D435i模型配置)

本文详细介绍了如何使用Gazebo和VINS-MONO构建VIO SLAM仿真环境,包括Realsense D435i模型的配置与集成。通过实战指南,帮助开发者快速搭建高保真仿真平台,优化VIO性能,并解决常见问题,适用于机器人感知与定位导航领域。

weixin_30682415的博客 158

(数论九)中国剩余定理与扩展

​ 学习中国剩余定理之前必须学会求解逆元: 跳转 一.中国剩余定理: ​ 记得小时候听过一个故事,就是韩信想知道自己有多少士兵,然后就先让士兵排成x列,余出来a个人,后来又让士兵排成y列,余出来b个人,后来又让士兵排成z列,余出来c个人,最后韩信直接算出了自己的士兵数。。Orz~ ​ 呃呃呃,感觉有点像小学的时候做过的奥数题。。。 ​ 假使x,y,z分别为3,5,7,a,b,c分别为2,3,2,那...

Ivan_zcy的博客 782

NWD 格式转换 STL 全流程:专业方案与迪威模型网在线转换详解

在3D模型处理中,将NWD文件转换为STL格式是常见的需求,特别是在3D打印和计算机辅助制造等领域。NWD文件由Autodesk开发,主要用于建筑、工程和施工行业,包含丰富的几何图形和材质信息,但因其专有格式和大文件大小,限制了其应用范围。相比之下,STL格式广泛应用于3D打印,仅包含表面几何信息。转换NWD到STL的原因包括拓展模型应用场景和便于模型编辑。转换方法包括使用专业软件如Autodesk Navisworks配合Blender或3ds Max,或使用专门的转换工具如CADExchanger。

技术说明博主 2536

CMOS传输门(互补开关)实战指南 | 设计优化 + 常见问题解析

本文深入解析CMOS传输门(互补开关)的设计优化与常见问题,涵盖导通特性、版图设计、高频应用及混合信号设计等关键领域。通过实测数据和优化技巧,帮助工程师解决衬底连接、信号完整性等实际问题,提升数字和模拟混合信号设计的效率与可靠性。

weixin_29229989的博客 161

中国剩余定理模数不互素的情况

中国剩余定理 模数不互素的情况 当中国剩余定理在应用中模数不互素时,在求解MiM_iMi​对模数mim_imi​的逆元Mi′M_i'Mi′​时可能会报错说:两个数不是互素的,无法进行求解逆元的操作(我这里用的封装函数gmpy2.invert()求解逆元) 那么假定现在有一组同余式需要用到中国剩余定理求解,但是模数不互素; 将式1:x≡c1(mod m1)x\equiv c_1(mod~m_1)x≡c1​(mod m1​) 式2:x≡c2(mod m2)x\equiv

M3ng@L的博客 2658

具身机器人内部PCB板分类与系统架构详解

本文系统梳理了机器人内部PCB板的功能架构,将其划分为5大模块:1)核心主板(含主控计算机板、实时控制板等);2)感知类PCB(视觉、听觉、触觉等);3)运动控制类PCB(伺服驱动、编码器等);4)电源与安全类PCB(电源管理、BMS等);5)通信类PCB(EtherCAT背板等)。通过人体器官类比(如大脑对应主控板、小脑对应实时控制板),详解了各模块的芯片选型、位置分布及协同关系,并给出信号/能量/指令的三流闭环示意图和典型系统参数(48V供电、1ms通信周期)。整体呈现了机器人"神经系统&qu

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 318

信息安全数学基础 第一章 整数的可除性

第一章 整数的可除性 1.1 整除的概念、欧几里得除法 定义 1.1.1 设a,ba,ba,b是任意的两个整数,其中b≠0b\ne0b​=0。如果存在一个整数qqq使得等式 a=q⋅b a=q\cdot b a=q⋅b 成立,就称bbb整除aaa,或aaa被bbb整除,记作b∣ab\mid ab∣a,并把bbb叫做aaa的因数,aaa叫做bbb的倍数。反之,若bbb不能整除aaa,则记作b∤ab\nmid ab∤a。 整除显然有如下结论 0是任何非零整数的倍数。 1是任何整数的因数。 任何非零整数a是其

NelsonCheung的博客 1381

Windows如何使用Anaconda 3进行keras环境的配置

** Windows如何使用Anaconda 3进行keras环境的配置 搭建Keras环境* Anaconda3如何安装keras,主要包括下面三步: 1.安装mingw libpython 2.安装theano 3.安装keras 若你还没有按装anaconda,赶紧下载安装吧! 下载途径有两个 (1)Anaconda版本为Anaconda 4.4.0,对应的python版本为3.6,附上An...

Lance_liangliang的博客 1600

【unity小技巧】常用的方法属性和技巧汇总(长期更新,2025/07/02更新)

Unity开发技巧摘要 本文汇总了Unity开发中的实用技巧,包括移动控制、力应用、物体翻转、单例模式实现等。移动方面介绍了MoveTowards、MovePosition、Translate等方法的区别与应用场景;力应用部分详解了AddForce系列方法的参数和使用方式;物体翻转对比了三种实现方案;单例模式提供了标准实现和泛型优化版本;还收录了绝对值计算、鼠标检测、旋转控制、数值取整等实用代码片段。这些经过验证的技巧能有效提升开发效率,文章将持续更新补充新的实用内容。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3344

【中国剩余定理】互素与不互素的情况详解

给出 a 和 m ,一个数有逆元的充分必要条件是gcd(a,m)=1,此时逆元唯一存在,这时方程 ax ≡ 1(mod m)的最小整数解 x 称为 a 模 m 的逆元。注意这里每次求得的解都要保证是最小的解的形式,可以通过用(x%mod+mod)%mod 的形式来控制。一个整数除以3余2、除以5余3、除以7余2,求这个整数。X2除以3余0、除以5余3、除以7余0;

momo11232323的博客 4391

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

锂电池寿命预测 | Pytorch实现基于Transformer 的锂电池寿命预测(NASA数据集)

算法如诗的博客 5583

HDU - 1573 - X问题(中国剩余定理不满足互质情况下的求解)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1573题解:推导过程太长写纸上了,夹在ACM/ICPC那本书里面。 转一个题解: http://972169909-qq-com.iteye.com/blog/1266328 作者 (KIDx)AC代码:#include <iostream> #include <cstdio> #include

Infinity_Izayoi的博客 698

【软考高项】【计算专题】- 3 - 进度类 - 双代号网络图

共需压缩 20 天。在双代号网络图中,工作一般使用箭线表示,任意一条箭线都需要占用时间、消耗资源,工作名称写在箭线的上方,而消耗的时间则写在箭线的下方或者工作后面。反映的是前后工作的交接点,节点中的编号可以任意编写,但应保证后续工作的节点比前面节点的编号大,即上图图中的1⃣️4⃣️ 即表示 B 活动和 D 活动间有依赖关系,D 活动的开始,依赖 B 活动的结束。B活动完成了一半, 各计划的实际支出为A活动6500元, B活动1000元, C活动280元, D。

欢迎来到我的博客,一起探索代码里的世界! 4559

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

X问题 中国剩余定理

   Total Submission(s) : 32Accepted Submission(s) : 15 Problem Description 求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod a[2] = b[2], …, X mod a[i] = b[i], … (0 < a[i] <=...

weixin_30808575的博客 120

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

中国剩余定理(除数不互质)

对于 x%mod[1]=a[1] x%mod[2]=a[2] x%mod[3]=a[3] ...  mod[i] 之间不一定互质,求解最小x。 对于 mod[i] 之间不一定互质的情况,需要将剩余定理修改一点。 对于第一个方程 x[0]%mod[0]=a[0] ,可知 x[0] 的最小解即为 a[0] 。对于第二个方程 x[1]%mod[1]=a[1] ,假设 x[1]

Bamb00D的博客 1116

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

hdu X问题 (中国剩余定理不互质)

http://acm.hdu.edu.cn/showproblem.php?pid=1573 X问题 Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4439Accepted Submission(s): 1435 ...

deyou1988的专栏 406

中国剩余定理 && 扩展中国剩余定理(互质与不互质)-板子

中国剩余定理就是求x: x = a1 (mod m1) x = a2 (mod m2) ... x = ak (mod mk) ...

不想起标题 509

hdu1573X问题(不互素的中国剩余定理)

X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3295    Accepted Submission(s): 1068 Problem Description 求在小于等于N的正整数中有多少个X满足:X ...

weixin_33979363的博客 165

扩展中国剩余定理的应用

链接:https://ac.nowcoder.com/acm/problem/15068 来源:牛客网 uu遇到了一个小问题,可是他不想答。你能替他解决这个问题吗? 问题:给你k对a和r是否存在一个正整数x使每队a和r都满足:x mod a=r,求最小正解x或无解。 这道题必须用扩展中国剩余定理来解决,因为无论模数是否互质都可以满足次定理,即从第二个开始每次对aax+bb=a[i]y+b[i]求最小整数解,之后把每次加上aax,每次对(aa,a[i])求最小公倍数lcm。 #include&lt.

qq_50812688的博客 214

表达整数的奇怪方式(中国剩余定理)

题目链接 题意:给定2n个整数a1,a2,…,an和m1,m2,…,mn,求一个最小的非负整数x,满足∀i∈[1,n],x≡mi(mod ai)。 输入格式 第1行包含整数n。 第2…n行:每i+1行包含两个整数ai和mi,数之间用空格隔开。 输出格式 输出最小非负整数x,如果x不存在,则输出-1。 如果存在x,则数据保证x一定在64位整数范围内。 数据范围 1≤ai≤2^31−1, 0≤mi&l...

Satur9的博客 658

中国剩余定理

先把板子留下,之后再来写证明…Biorhythms HDU - 1370 除数互质#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath>using namespace std; #define LL long long void gcd(LL a,LL b,LL

bllsll 285

HDU3579中国剩余定理(不互质的情况)

hdu 3579 Hello Kiki 中国剩余定理(不互质的情况) 对互质的情况,处理起来比较方便,可以直接套模板 本题给出不互质的模线性方程组,求出满足方程的最小正整数解 方案:对于不互质的模线性方程组,可以进行方程组合并,求出合并后的方程的解,这样就可以很快地推出方程的最终解。 两个方程合并的一种方法: x = c1 (mod b1) x = c2(mod b2)  此时b1,

幸福在路上 7340

中国剩余定理(原理分析,互质与不互质情况的思考)

中国剩余定理 中国剩余定理的具体描述是这样的: 给出你n个ai和mi,最后让求出x的最小值是多少。 中国剩余定理说明:假设整数m1, m2, … , mn两两互质,则对任意的整数:a1, a2, … , an,方程组(S)有解,并且通解可以用如下方式构造得到: 设M = m_1 \times m_2 \times \cdots \times m_n = \prod_{i=1}^n m_i是整数m1, m2, … , mn的乘积,并设M_i = M/m_i, ; ; \forall i \in {1, 2,

weixin_43602607的博客 1697

中国剩余定理(互质和不互质)

https://blog.youkuaiyun.com/u010468553/article/details/38346195 中国剩余定理的具体描述是这样的: 给出你n个ai和mi,最后让求出x的最小值是多少。 中国剩余定理说明:假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,方程组有解,并且通解可以用如下方式构造得到: 设是整数m1,m2, ...

qq_42434171的博客 1747
上一篇: Hello Kiki(中国剩余定理不互质情况)
下一篇: And Now, a Remainder from Our Sponsor (中国剩余定理互质情况)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值