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;
}
【数据挖掘】遗传算法原理浅析:什么是遗传算法?遗传算法的工作原理是什么? 遗传算法(Genetic Algorithm,GA),是进化算法的框架和核心。 各种进化算法有什么异同? - 及时物语的回答 - 知乎 https://www.zhihu.com/question/39152390/answer/901070749 阅读详情

相关推荐

告别DLTS的模糊地带:手把手教你用拉普拉斯深能级瞬态光谱(LDLTS)精准揪出半导体缺陷

本文详细介绍了拉普拉斯深能级瞬态光谱(LDLTS)技术在半导体缺陷检测中的高分辨率解决方案。相比传统DLTS,LDLTS通过拉普拉斯变换和正则化算法,将分辨率提升至1meV,有效解析复杂重叠缺陷谱,适用于硅、GaN等材料的精确缺陷分析。文章涵盖LDLTS原理、系统搭建、测量流程及工业应用案例,为半导体工艺优化提供强大工具。

weixin_29238147的博客 193

[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

ARM架构实战:在鲲鹏920服务器上用Debian12部署PVE虚拟化平台

本文详细介绍了在基于ARM架构的华为鲲鹏920服务器上,以Debian 12为底层系统,部署Proxmox VE(PVE)虚拟化平台的完整实战流程。文章重点解析了ARM64架构下PVE软件源的配置、内核安装的注意事项、部署后网络与存储的调优,并提供了针对ARM虚拟化环境的性能优化建议,为在国产化硬件上构建稳定高效的虚拟化环境提供了宝贵经验。

efc12345678的博客 780

寒假训练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

自建邮局服务器| 批量邮件群发系统PowerMTA+oem(mumara,mailwizz, interspire)

世界顶级自建邮局服务器PowerMTA+oem(mumara,mailwizz, interspire) PowerMTA4.5(最好用的 群发邮件软件)是用于大批量多ip开发的邮件传递邮寄。可按每小时发送数近百万条电子邮件,发送IP地址和域可以详细配置,加上目前流行前端oem,mumara,mailwizz, interspire等,可定时发送,定时重复发送,实现全自动化 邮件群发 方案。 官网(powermta4.5下载) https://www.sparkpost.com/powermta/ 使用Po

ytrsexpo的博客 6502

从零到一:RK3588嵌入式开发中的SDK与MPP集成实战解析

本文详细解析了RK3588嵌入式开发中SDK与MPP(Media Process Platform)的集成实战,涵盖开发环境构建、SDK架构解析、MPP集成关键技术点及常见问题诊断。通过Qt5.12.10交叉编译环境配置和硬件加速优化,帮助开发者高效完成嵌入式视觉项目开发,特别适合边缘计算应用场景。

weixin_29189381的博客 510

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

【Sentaurus TCAD仿真】几种基础操作

当内存不足时,没必要删除整个Project,只需要 Clean up 节点信息即可。因为占用内存的主要部分是。文件数据,Command文件是不占用多少内存的,下次需要此工程仿真结果重新运行即可。右击可以对该工程进行剪切、复制、删除、重命名等操作。当节点号有时候排序混乱的时候,我们需要重新编排节点号。此时左侧工具栏就能看见我们新建的这个工程。运行节点时不同的颜色代表目前的状态。在这个地方添加要使用的工具。这个时候需要的工具就建好了。然后选择需要使用的工具。我们需要保存这个工程。

qq_45746744的博客 1万+

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

YOLOv10有效涨点专栏目录 | 包含卷积、主干、检测头、注意力机制、Neck、二次创新、独家创新等上百种创新机制

Hello,各位读者们好本专栏自开设以来已经更新改进教程100余篇其中包含二次创新、独家创新多种改进方法,包含C2f、主干、检测头、注意力机制、Neck多种结构,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv10文档并不能在优快云上传,通过建立交流群的形式在内上传我完整的文件和视频我也会在群内不定期和大家交流回答大家问题。专栏介绍。

Snu77的博客 1万+

Pytorch实现之SRGAN+CBAM的结构设计

在SRGAN的残差连接中加入了CBAM注意力机制,同时设计了四类损失来训练。

LJ1147517021的博客 569

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

SOEM主站开发篇(1):移植SOEM主站到Linux开发板

详细介绍了SOEM主站源码移植到Linux开发板上的步骤,同时演示了如何使用Linux开发板获取EtherCAT从站的PDO映射信息。

kevin1499的博客 2398

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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、付费专栏及课程。

余额充值