CODEVS 1200 同余方程&&1213 解的个数

初等数论--同余方程--同余方程的解 信息安全数学基础--同余方程--同余方程的解 博主本人是初学信息安全数学基础(整除+同余+原根+群环域),本意是想整理一些较难理解的定理、算法,加深记忆也方便日后查找;如果有错,欢迎指正。 同余方程ax+b≡0(modm)ax+b\equiv 0(mod m)ax+b≡0(modm)有解,当且仅当(a,m)∣b(a,m)\mid b(a,m)∣b;若同余方程有解,则在模mmm的意义下解的个数为(a,m)(a,m)(a,m)个;记x0x_0x0​为其中一个解,则通解为x0+m(a,m)⋅t(modm),0≤t 阅读详情

CODEVS 1200 同余方程
题目描述 Description
求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解。

输入描述 Input Description
输入只有一行,包含两个正整数 a, b,用 一个 空格隔开。

输出描述 Output Description
输出只有一行包含一个正整数x0,即最小正整数解,输入数据保证一定有解。
【数据范围】
对于 40% 的数据, 2 ≤b≤ 1,000 ;
对于 60% 的数据, 2 ≤b≤ 50,000,000
对于 100% 的数据, 2 ≤a, b≤ 2,000,000,000

ax≡1(modb)就等价于ax+bk=1(k为常数);
用exgcd水过= =。
稍微注意一下正负号就好了 。

#include<cstdio>
using namespace std;
typedef long long ll;
void exgcd(ll a,ll b,ll &x,ll &y)
{
    if(b==0)
    {
        x=1;
        y=0;
        return; 
    }
    exgcd(b,a%b,x,y);
    int t=y;
    y=x-(a/b)*y;
    x=t;
}
ll n,m;
int main()
{
    ll x,y;
    scanf("%lld %lld",&n,&m);
    exgcd(n,m,x,y);
    while(x<0)
        x+=m;
    printf("%lld\n",x%m);
    return 0;
}

CODEVS 1213 解的个数
题目描述 Description
已知整数x,y满足如下面的条件:
ax+by+c = 0
p<=x<=q
r<=y<=s
求满足这些条件的x,y的个数。
输入描述 Input Descriptio
第一行有一个整数n(n<=10),表示有n个任务。n<=10
以下有n行,每行有7个整数,分别为:a,b,c,p,q,r,s。均不超过108。
输出描述 Output Description
共n行,第i行是第i个任务的解的个数。
样例输入 Sample Input
2
2 3 -7 0 10 0 10
1 1 1 -10 10 -9 9
样例输出 Sample Output
1
19

乍一看不是很难,ax+by+c=0——>ax+by=-c;
设hah为gcd(a,b);
则如果-c不能整除hah,说明无解。
那么有解的时候….
我们通过ax+by=gcd(a,b)可以解出来一组x和y。
那么:
a*(x+nb)+b*(y-na)=gcd(a,b)
ax+by+nab-nab=gcd(a,b)
ax+by=gcd(a,b)

那么对于-c呢?

我们可以这么理解。
ax+by=gcd(a,b)
-c=(-c/gcd(a,b))*gcd(a,b);
ax*(-c/gcd(a,b))+by*(-c/gcd(a,b))=gcd(a,b)*(-c/gcd(a,b))
ax*(-c/gcd(a,b))+by*(-c/gcd(a,b))=-c

所以我们可以的出来一个ax+by=-c里面一个x=x*(-c/gcd(a,b)),y=y*(-c/gcd(a,b))
然后在那个范围内暴力查找就行啦。
不过这个SX题目有坑。

左边界大于右边界是什么情况= =。
给定的a和b都等于零又TM是什么情况= =。

#include<cstdio>
using namespace std;
typedef long long ll;
ll exgcd(ll a,ll b,ll &x,ll &y)
{
    if(b==0)
    {
        x=1,y=0;
        return a;
    }
    ll r=exgcd(b,a%b,x,y);
    ll t=x;
    x=y;
    y=t-(a/b)*y;
    return r;
}
int main()
{
    int tott=0;
    int n;
    scanf("%d",&n);
    while(n--)
    {
        ll a,b,c,p,q,r,s;
        ll x,y;
        scanf("%lld%lld%lld%lld%lld%lld%lld",&a,&b,&c,&p,&q,&r,&s);

        if(q<p||s<r)
        {
            puts("0");
            continue;
        }
        if(a==b&&a==0)
        {
            if(c==0)
                printf("%lld\n",(q-p+1)*(s-r+1));
            else
                puts("0");
            continue;
        }
        c*=-1;
        ll hah=exgcd(a,b,x,y);
        if(c%hah)
        {
            puts("0");
            continue; 
        } 
        int tot=0;
        if(b==0)
        {
            while(y>=r)
                y-=a;
            while(y<=s)
            {
                y+=a;
                if((y*b==c)&&(r<=y&&y<=s))
                    tot++;
            }
            printf("%d\n",tot);
        }
        else
        {
            a/=hah,b/=hah,c/=hah;
            x*=c,y*=c;
            while(x>=p)
                x-=b,y+=a;
            while(x<=q)
            {
                x+=b,y-=a;
                if((p<=x&&x<=q)&&(r<=y&&y<=s))
                    tot++;

            }
            printf("%d\n",tot);
        }

    }
    return 0;
}
二次同余方程的解法(2020.11.20).pdf 立即下载

相关推荐

线性同余算法 线性丢番图方程 原根算法 解二次同余方程的C++实现

密码学中线性同余算法 线性丢番图方程 原根算法 解二次同余方程的C++实现。适合密码学和C++初学者。希望对大家有帮助。

同余方程组解的个数 (hdu1573)

                        由此入门同余方程组(模非互质)可以通过合并方程求解。        假设以上都知道的。或者点击打开链接通过以上方法求得最小正整数解x 方程组的模底为lcm=LCM(a1,a2...an)     通解:      有解:      无解:  注意:有解时,若a=0 则t=0去除,题目要求正整数。#include&lt;cstdio&gt; #defi...

kala0的博客 2777

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

求同余方程x^A=B(mod m)的解个数(原根与指标)

求方程:的解个数 分析:设,那么上述方程解的个数就与同余方程组:的解等价。 设同于方程的解分别是:,那么原方程的解的个数就是 所以现在的关键问题是求方程:的解个数。 这个方程我们需要分3类讨论: 第一种情况: 对于这种情况,如果方程的某个解设为,那么一定有,可以得到,即 所以方程的解个数就是:,也就是 第二种情况: 这样...

weixin_34138056的博客 1021

QuestaSim使用Xilinx库的设置

安装QuestaSim

miracle_eicont的专栏 3409

JMeter压测Dubbo接口的完整落地方案(适配3.x)

Dubbo作为主流Java微服务RPC框架,其接口压测长期面临协议私有、注册发现复杂、序列化耦合度高等技术门槛。理解Dubbo基于TCP长连接、泛化调用与SPI扩展机制的核心原理,是实现稳定压测的前提;技术价值在于绕过HTTP网关直击服务核心链路,保障大促等关键场景的性能可信度;典型应用场景包括电商订单链路压测、风控/库存等内部Dubbo服务SLA验证,以及CI/CD中性能左移实践。本文聚焦Dubbo 3.x版本,提供零第三方插件、可复用、避坑的JMeter Java Sampler落地路径。

weixin_33700809的博客 549

线性同余方程组(求N以内解的数量)

假设只有两个方程。 $x\equiv b1(\mod a1)$ $x\equiv b2(\mod a2)$ 则$x=a1\times k1+b1=a2\times k2+b2$。 所以$a1\times k1-a2\times k2=b2-b1$,设$d=gcd(a1,a2)$,若$d|(b2-b1)$,则有解。 用拓展欧几里得(exgcd)求出k1,k2,则方程变为: $x\equi...

weixin_30321709的博客 367

统信UOS/麒麟ARM桌面版,不联网也能用Docker部署MySQL 5.7(离线部署详解)

本文详细介绍了在统信UOS/银河麒麟ARM桌面版系统中,如何离线部署MySQL 5.7的完整流程。通过Docker技术实现环境隔离和依赖封装,解决了封闭网络环境下的部署难题,包括资源准备、系统配置、容器化部署及安全加固等关键步骤,为政企和科研场景提供实用解决方案。

weixin_30892037的博客 229

高次同余方程式的解数及解法

定理一: 若是k个两两互质的正整数,,则同余式                                   (1) 与同余式组          (i=1,2,3,...,k)          (2) 等价,并且若用表示对模的解数,T表示(1)式对模m的解数,则: 所以求多项式的解可以用上述方法,先分解分别求出各个解再合并。 定理二:p是

ACdreamer 1万+

Win10下Delphi 10.4.2 (RAD Studio 10.4.2 )安装教程图解

Win10下Delphi 10.4.2 (RAD Studio 10.4.2 )安装和破解教程图解

1万+

向量乘法器设计

同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...

Reborn Lee 2969

二次同余方程(二次剩余)

文章目录一、介绍1.定义2.定理二、判别1.勒让德符号(Legendre Symbol)2.欧拉判别准则(Euler's criterion)(1)内容(2)证明(3)注意三、x2≡n(modx^2≡n(modx2≡n(mod p)p)p)——奇波拉算法(Cipolla's algorithm)1.操作2.证明x=(a+a2−n)p+12x=(a+\sqrt{a^2-n})^{\frac{p+1}{2}}x=(a+a2−n​)2p+1​为解四、模板题代码五、x2≡n(modx^2≡n(modx2≡n(mo.

qq_52441682的博客 9440

lammps案例:聚乙烯和石墨烯界面pull out模拟

大家好,我是小马老师。 本文介绍lammps模拟计算界面结合力的一个案例。 本案例参考论文《The interfacial mechanical properties of functionalized graphene- polymer nanocomposites》,对论文作者表示感谢。 模型共分2层,上层为聚乙烯模型,下次为单层石墨烯,模拟过程共分3部分:建模、弛豫、拉伸。 (1)建模 使用MS建立聚乙烯和石墨烯模型,具体方法可参考之前的推文,使用build layer方法建立聚乙烯和石墨烯组合模型,

lammps_jiayou的博客 3494

HDU1573 线性同余方程(解的个数)

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

anuancong1219的博客 439

044、镜头脏污与异物检测:产线 AOI 检测方案与 ISP 脏污补偿

文章摘要(148字) 本文针对镜头生产中的脏污检测问题,提出产线AOI检测与ISP补偿结合的解决方案。产线端采用明场、暗场、偏振三通道联合检测技术,将油污漏检率从8.3%降至0.2%。ISP端通过RAW域局部梯度分析和频域补偿算法,动态修复产线漏检的微小脏污。作者结合实战案例,详细分析了传统灰度阈值法的局限性,并给出多模态检测的代码实现要点,强调必须建立"产线拦截+终端补偿"的双重防护机制。

sundong_81的博客 228

YOLOV26详解 从原理到部署

计算机视觉领域最具影响力的目标检测框架迎来重大里程碑。2026年1月,Ultralytics 正式发布 YOLOv26——这不是一次简单的版本迭代,而是一场面向边缘计算时代的架构重构。本专栏基于 Ultralytics 官方技术白皮书、YOLO Vision 2025 大会首发内容及国际前沿研究成果,系统拆解 YOLOv26 从算法原理到工程落地的全栈技术体系。与常规教程不同,我们聚焦与,帮助你在端侧 AI 部署的实战中掌握核心竞争力。

u012133341的博客 2019

二次同余方程求解

【复杂度分析】在二次非剩余b已知的情况下,上述算法复杂度显然是确定多项式时间。然而"找到一个奇素数的二次非剩余"这个问题目前没有确定性多项式时间算法。【思路】下面的思路是找到一个模p的二次非剩余b,令。由引理1.1和推论1.1可知,,则说明有解,执行step2。,然后根据引理1.1可知,(2)由Euler定理可知。,由Euler定理可知。找到一个偶数L,使得。

weixin_45851672的博客 1614

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

二次剩余和二次同余方程

概念 二次同余方程x2≡n(mod  p)x^2\equiv n(mod~~p)x2≡n(mod  p),其中n,pn,pn,p已知且互质且ppp为奇质数,求xxx 这样的二次同余方程若有解,则称nnn是模ppp的二次剩余,同时xxx为该二次同余方程的解 实际上二次同余方程也在解决x≡n(mod  p)\sqrt{x} \equiv n(mod~~p)x​≡n(mod  p),意为如果该二次同余方程有解,那么nnn可以在模ppp

Happig的博客 1476

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

二次同余方程的解

题目:http://acm.timus.ru/problem.aspx?space=1&num=1132   题意:就是给出方程,p为素数,求在区间内的解。   这个思路很简单,详见:http://algo.ftiasch.com/tag/number-theory/ 一开始TLE,原因是我用了二分加法,以后记住:二分加法是适合很大数的,比较小的数就直接乘,不然数据多了可能TLE。

ACdreamer 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

二次剩余,二次同余方程

定义 对于方程x2≡n(modp),nx2≡n(modp),nx^2\equiv n (mod \;p)\;,\;n为p的二次剩余 , x为该二次同余方程的解 就如字面意思一样 , n就是一个二次项%p后的剩余 应用 求n−−√%p,n%p,\sqrt{n}\%p\;,若n为p的二次剩余 , 那么很明显n−−√%p=x%pn%p=x%p\sqrt{n}\%p=x\%p 简...

QAQ 2914

HDU 1573 X问题 求同余方程组解的个数

点击打开链接 X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2771    Accepted Submission(s): 881 Problem Description 求在小于等于N

代码改变世界,keep coding。 1818

同余方程

数论-同余方程 给出一个新记号 a≡b(mod)n 上式的含义为:“a和b关于模n同余” 可以理解为a%n==b%n充要条件为 a≡b(mod)n <=> a-b是n的整数倍。 例题 1 输出正整数,解方程ax≡b(mod n).a,b,n<=10e9; 由上可知 ax-b=ny 得到 ax-ny=b; 这个方程是一个不定方程,也可以叫做丢番图方程。换种写法也就是...

weixin_44203780的博客 1700

数论 —— 高次同余方程与 BSGS 算法

【概述】 BSGS(BabyStepGiantStep)算法,又称大小步算法,其主要用于解形如的高次同余方程中的 x,其核心思想是分块。 当 A与 C互质时,通过费马小定理: 可知,当时,会出现一个循环节,于是就能保证答案 x若存在,必然有 因此,当 C比较小时,可使用暴力,直接令从 0 枚举到 C-1,检验其是否为方程的解,而当 C比较大时,使用暴力会 TLE,...

Alex_McAvoy的博客 1205

信息安全数学基础(三):同余式

同余式对应着之前学的等式 设m是一个正整数,f(x)为多项式 f(x)=an * xn+…+a1 * x+a0 则f(x)=0 (mod m)叫做模m同余式 若an!=0(mod m),则n叫做f(x)的次数,记为degf,此时上述同余式又称作模m的n次同余式。 在模m的完全剩余系中,使得同余式成立的剩余个数叫做同余式的解数 同余式求解的基本思路 (1) 求解归约( f(x) (mod m)<= f(x) (mod pα)<= f(x) (mod p)) 说实话没明白什么意思,应该是难度从右往左

qq_44109982的博客 2538

二次同余方程模合数的一般解法

0.不讨论复杂情况的解释 对于一般的二次同余方程形如 可以通过配方化为下式 可通过换元,得到 解出X的取值,然后用2ax+b回带,用扩展欧几里得解线性同余方程就可以得到方程本来的解 注意上式得到了一般二次同余方程的形式,即 下文讨论上式的一般解法,并给出代码进行解释1.朴素的二次同余方程的解法 因为,因此很明显可以直接枚举。时间复杂度,如果m稍微大一些效率就会很低2.对

Quack 1万+
上一篇: POJ 1061 青蛙的约会
下一篇: CODEVS 1137 计算系数
「已注销」
博客等级 码龄11年 31粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值