HDU 1576 扩展欧几里得

HDU - 1576(费马小定理求逆元) A/B 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1576 题目: Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9278    Accepted Submission(s)... 阅读详情

A/B

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4627 Accepted Submission(s): 3610

Problem Description
要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。

Input
数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。

Output
对应每组数据输出(A/B)%9973。

Sample Input
2
1000 53
87 123456789

Sample Output
7922
6060

Author
xhd

Source
HDU 2007-1 Programming Contest

(A/B)%9973=K
K+9973X=A/B
KB+9973XB=A
因为A%9973=N
(KB+9973XB)%9973=N
KB%9973=N
KB=9973Y+N
KB-9973Y=N
KB/N-9973Y/N=1=GCD(9973,B)
套欧几里得模板即可

#include<iostream>
using namespace std;
const int MOD = 9973;
void extendGcd(int a, int b, int &x, int &y) //扩展gcd,可以求出gcd(a,b)以及ax+by=gcd(a,b)中x,y的值
        {
    if (b == 0) {
        x = 1;
        y = 0;
        return;
    } else {
        extendGcd(b, a % b, x, y);
        int tmp = x;
        x = y;
        y = tmp - a / b * y;
    }
}
int main() {
    int t, n, b, x, y, tmp;
    cin >> t;
    while (t--) {
        cin >> n >> b;
        extendGcd(b, MOD, x, y);  //解出bx+9973y=1的x
        x *= n;   //此时的x为bx1-9973y1=n中的解x1了
        tmp = (x % MOD + MOD) % MOD;   //防止x为负,有题意x必为正数
        cout << tmp << endl;
    }
    return 0;
}
整理笔记——二极管 二极管是一种由半导体材料制成的一种具有单向导电性能的电子元器件,二极管的核心是PN结。加在二极管两端的电压和通关的电流被成为,二极管的伏安特性曲线​​​二极管的正向特性:起初正向电压较小时,正向电流几乎没有,称之为死区,此时二极管处于截止状态。当电压差超过截止电压(0.5V或者0.7V),电流随着电压上升,开始增加缓慢,随后急剧增大,二极管的电阻变小进入导通状态,此时电压变化较小。二极管的反向特性:起初反向电流很小,不随电压二变化,此时成为反向饱和电流;当方向电压达到二极管的反向击穿电压。 阅读详情

相关推荐

国内用户稳定开通ChatGPT Plus会员的完整实操指南

ChatGPT作为当前最先进的AI对话模型,其技术原理基于Transformer架构和大规模语言预训练。通过深度学习技术,ChatGPT能够理解自然语言并生成高质量回复,在代码生成、文档分析等场景具有重要技术价值。对于需要高频使用的开发者而言,ChatGPT Plus会员提供了优先访问权和GPT-4模型支持等核心功能。在实际应用场景中,国内用户常面临支付限制和区域封锁等挑战。本文针对这些痛点,重点解析如何通过可靠的支付渠道和账号安全策略,实现稳定的会员开通方案,帮助用户突破技术使用壁垒,充分发挥AI助手在开

weixin_29042035的博客 954

[Java]HDU 1576 (费马小定理 + 扩展欧几里得)

思路: (A/B)%9937 = A*B-1 %9973. 这里的B-1 代表乘法逆元,而不是1/B. 乘法逆元:A除以一个数模P,等于A乘以这个数的乘法逆元模P。 所以我们只需要求解出B对于9973的乘法逆元B-1即可。 解法一:费马小定理求解乘法逆元 若a是一个整数,b是一个质数,那么 ab ≡ a(mod b) 或 ab-1≡1 (mod b) 由扩展欧几里得可以得出: 因为gcd(a,...

Tizzi的博客 992

LabVIEW多界面应用开发:从启动器到主界面的切换架构与实现

在图形化编程领域,模块化与界面管理是构建复杂应用程序的核心。其原理在于通过清晰的程序架构,实现不同功能模块间的独立运行与协同工作,从而提升代码的可维护性和可扩展性。这种架构的技术价值在于能够有效管理应用程序的生命周期与资源,避免内存泄漏,并确保流畅的用户体验。在测控系统、自动化测试等工程实践中,常需实现如启动界面选择语言或模式后,无缝切换至主功能界面的场景。本文聚焦于LabVIEW环境,深入探讨如何利用动态调用、状态机等机制,并结合功能全局变量(FGV)与队列消息处理器(QMH)等热词技术,构建健壮的多界面

weixin_30802819的博客 263

寒假训练HDU-1576题解

问题链接:HDU-1576 思路 这道题可以用欧几里得扩展来算,但是看到网上的题解有一个方法感觉挺简单的,题解作者叫试探法。和欧几里得扩展一样,也是求方程,然后求解。根据题意,输入的n=A%9973(没有输入A),A%B=0(A必能被B整除),B与9973互素(GCD(B,9973)=1)。设x=(A/B)%9973(x是最终想计算的值,满足0&lt;=x&lt;=9972),则9973k+x=A...

weixin_43970556的博客 269

夸克缓存视频合并小工具

原理 使用windows的命令行的copy命令来合并 copy /b 0+1+2+3 new.ts 分析缓存目录结构,发现都是一个m3u8文件带一个同名文件夹 所以分析m3u8并把原来的路径换成这个缓存文件夹路径并按顺序合并即可。 其中碰到的难点是Qprocess在windows不好使,索性直接存成.bat批处理文件再执行 还有就是中文问题,具体在代码里都说了。 代码 (环境Qt5.7.0) 这是mainwindow.h #ifndef MAINWINDOW_H #defin.

natural_Caduceus 1万+

注意力机制模块:二次创新:CBAM 与 ECA 融合形成 CECA 模块,参数量减少 40%

文章摘要: 本文提出一种轻量化注意力模块CECA,通过融合CBAM和ECA的优势解决模型部署中的精度与速度矛盾。CBAM虽具备通道和空间双重注意力,但参数量大;ECA轻量但缺乏空间注意力。CECA采用ECA的一维卷积替换CBAM的通道注意力部分,保留其空间注意力模块,在保持双注意力能力的同时减少40%参数量。实验表明该方案在边缘设备部署中能维持精度并提升推理速度,特别适用于YOLO等目标检测模型的轻量化改进。文章详细拆解了架构设计、代码实现及参数量优化原理,为算法工程师和嵌入式开发者提供了实用解决方案。

ZXSXJ的博客 237

HDU - 1576

HDU - 1576 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 Input数据的第一行是一个T,表示有T组数据。  每组数据有两个数n(0 Output对应每组数据输出(A/B)%9973。 Sample Input 2 1000 53 87 123456789 Samp

qq_35916858的博客 343

纳米尺度仿真软件:GROMACS_(3).分子动力学模拟原理

分子动力学(MD)模拟是一种强大的计算方法,通过数值积分牛顿运动方程,追踪粒子在时间上的位置和速度变化,提供关于体系动力学行为的详细信息。选择合适的力场、设置初始条件、应用边界条件、控制温度和压力、选择合适的时间步长、计算能量和力,是 MD 模拟的关键步骤。通过这些步骤,可以对各种化学、生物和材料体系进行模拟和分析,揭示其结构、动力学和热力学性质。高级应用如反应路径模拟和蛋白质折叠研究,进一步扩展了 MD 模拟的应用范围。

kkchenjj的博客 1100

HDU 1576 (乘法逆元)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1576 题目大意:求(A/B)mod 9973。但是给出的A是mod形式n,n=A%9973。 解题思路: 两种思路,一种从乘法逆元角度,另一种从扩展GCD推公式角度。 ①乘法逆元: 先来看下逆元和乘法逆元的关系,对于A*X=B,有X=A-1*B,A-1就是普通的逆元了,在这里就是倒数。 ...

weixin_33827965的博客 187

YOLOv11改进 | 主干/Backbone篇 | 轻量化目标检测网络MobileViTv1改进yolov11有效涨点

本文给大家带来的改进机制是MobileViT系列的V1版本,其作为MobileNet网络的挑战者,其效果自然不用多说,MobileViT模型是为移动设备设计的轻量级、通用目的视觉变换器。它融合了卷积神经网络(CNN)和视觉变换器(ViT)的优势,旨在在保持高效性能的同时减少模型参数和降低延迟。通过其创新的MobileViT Block和多尺度训练方法,MobileViT在多个视觉任务上取得了优异的结果,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。

Snu77的博客 2336

【图论】系列(一)之图论的构成

图论是研究图的数学分支,本章介绍了图论的基本构成和概念

qq_30066733的博客 748

HDU1576(扩展欧几里得算法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 题目大意:见题目 解题思路:开始的时候,看到求(A/B)%9973感觉像是直接利用同余公式即可解决,回顾一下同余公式: (a+b)mod n = ((a mod n)+(b mod n))mod n (a-b)mod n = ((a mod n)-(b mod n) + n) mod

Tworld 1465

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU 1576 A/B(扩展欧几里得)

HDU 1576 Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 Input 数据的第一行是一个T,表示有T组数据。 每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9) Output 对应每组数据输出(A/B)%9973。 Sample Input 2 1000 53 87 123456789 Sample Output

kitalekita的博客 285

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HDU 1576 扩展欧几里得&&暴力

HDU 1576 A - A Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,

DT2131 456

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HDU 1576 A/B 扩展欧几里得

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1576 思路:此处来自百度:设(A/B)%9973 = K, 则A/B = k + 9973x  (x未知), 因此A = kB + 9973xB, 又A%9973 = n, 所以kB%9973 = n,  故kB = n + 9973y (y未知) 故(k/n)B +(-y/n)*9973

弱智就要多努力 487

HDU 1576 A/B 【带简单处理的扩展欧几里得】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 求解思路:从A一定是B的倍数入手,令A=k*9973+C,那么k*9973+C=tB,所以tB-k*9973=C,用扩展欧几里得求出最小的正t即是A/B,那么再去一次模就求得了解 AC代码: //HDU-1576 A/B //AC 2016-4-19 ...

babao9492的博客 120

扩展欧几里得 hdu 1576

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 不知道扩展欧几里得的同学可以参考:https://blog.youkuaiyun.com/zhjchengfeng5/article/details/7786595 我的推理: 这图片是真的大啊... #include<iostream> #include<cstring&g...

weixin_30929011的博客 78

HDU 1576 A/B (扩展欧几里得)

转载请注明出处:忆梦http://blog.youkuaiyun.com/yimeng2013/article/details/10343873 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 题解:由题意有  ①gcd(B,9973) = 1) ,B和9973互质。      ②A必能被B整除→A=B*x  ……①式

忆梦 1196

【A/B%m+扩展欧几里得】hdu 1576 A/B

hdu 1576 A/B http://acm.hdu.edu.cn/showproblem.php?pid=1576思路A/B%m经典问题,在(B,m)=1的情况下,转换为Bx+my = n ,扩展欧几里得得到最小正整数解即可,数论水题!参考代码 #include<iostream> #include<cstdio> #include<cstdlib> using namespace std;t

Hacker_vision 833

hdu1576(扩展欧几里得)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 题目:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 Input 数据的第一行是一个T,表示有T组数据。 每组数据有两个数n(0 <= n < 9973)和B(1 <= B &lt...

weixin_30407099的博客 104

HDU 1576 A/B (逆元求扩展欧几里得)

【题目链接】:click here~~ 【题目大意】: 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 【思路】,此题有多种方法, 法一:逆元解决就可以了。 代码: /* * Problem: HDU No.1576 * Running time: 0MS * Complier: C

herongwei 的 BLOG 1181

hdu1576 扩展欧几里得算法求逆元

hdu 1576 (a/b)%MOD就可以化为:( (a%MOD)*_b )%MOD,其中_b就是b%MOD的逆元 如果 (b*_b) % MOD == 1的话,那么就称  是 b 的逆元 求b关于MOD的逆元就是解这个方程: b*x + MOD*y == 1,求出的x就是b关于MOD的逆元。(令_b=x,那么(b*x)%MOD==1 那么b*x+MOD*y==1,其中y=-(b*

竹丙丙丙丙 628

hdu 1576 扩展欧几里得

已知:A / 9973 = a 求:(A  / B ) % 9973 首先明确,(A/B) %9973 !=(A % 9973) / (B % 9973)   推导: 令 (A / B ) % 9973 = ans 所以 A / B = ans + 9973c  (c未知) 即 A=ans*B +  9973Bc 因为 A % 9973 =a 所以 (ans*B + 9973Bc)

Eirlys的博客 324
上一篇: HDU 2814 斐波那契循环节+欧拉函数降幂
下一篇: HDU 2669 扩展欧几里得最小非负解
still_foolish
博客等级 码龄10年 1粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值