A/B(HDU - 1576,费马小定理 + 乘法逆元)

NEP-ZBL混合势函数:高精度机器学习势在大规模辐射损伤模拟中的突破 在材料科学和计算物理领域,分子动力学模拟是研究材料在原子尺度行为的关键技术。其核心在于势函数,它决定了模拟的精度与效率。传统经验势函数计算高效但精度有限,而基于第一性原理的机器学习势函数精度高但计算成本巨大,这构成了材料模拟,尤其是极端条件(如核辐照)下模拟的长期瓶颈。NEP-ZBL混合势函数通过创新的分工策略解决了这一难题:它利用高效的神经进化势处理材料的平衡态与常见缺陷,同时引入久经考验的ZBL屏蔽库仑势专精描述高能碰撞中的短程核排斥相互作用。这种结合在保持接近第一性原理精度的同时,实现了接近传统经验势 阅读详情

一.题目链接:

HDU-1576

二.题目大意:

要求 (A / B) % 9973,但由于 A 很大,我们只给出 n (n = A % 9973)

(我们给定的A必能被B整除,且gcd(B,9973) = 1).

三.分析:

费马小定理:假如 P 是质数,且 gcd(B,P) = 1,则 B^{P-1} % P = 1.

由此可推出:如果 B 为整数,且 P 为质数,那么 B^{P-1} % P = 1.

再乘法逆元可得:(A / B)% P = A * B^{_{P-2}} % P.

其实没啥好分析的,我就是想存个板子.

四.代码实现:

    #include <set>
    #include <map>
    #include <ctime>
    #include <queue>
    #include <cmath>
    #include <stack>
    #include <vector>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <iostream>
    #include <algorithm>
    #define eps 1e-6
    #define PI acos(-1.0)
    #define ll long long int
    using namespace std;

    ll power(ll a, ll b, ll c)
    {
        ll sum = 1;
        while(b)
        {
            if(b & 1)
                sum = (sum % c * a % c) % c;
            a = (a % c * a % c) % c;
            b >>= 1;
        }
        return sum % c;
    }

    int main()
    {
        int T;
        ll n, b;
        ll p = 9973;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%lld %lld", &n, &b);
            printf("%lld\n", n * power(b, p - 2, p) % p);
        }
        return 0;
    }

 

取模运算总结 - 数论 - 编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。 - 例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模,b取模,再求和,输出的结果相同。 - a mod b表示a除以b的余数。有下面的公式: - (a + b) % p = (a%p + b%p) %p - **(a - b) % p = ((a%p - b%p) 阅读详情

相关推荐

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

A/B(hdu1576 乘法逆元)

题意:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 思路:求乘法逆元 满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元。当且仅当gcd(k,p) = 1,如果可逆则可定义除法 x/k = x * a mod p   为什么要有乘法逆元呢? 当我们要求(a/b) m

leonharetd的专栏 1380

【STM32/GD32】Keil uVision生成bin文件:从编译选项到Bootloader升级实战

本文详细讲解了如何在Keil uVision中配置STM32/GD32工程,使其在编译后自动生成Bootloader升级所需的bin文件。通过解析fromelf工具的使用、构建后命令的配置以及内存布局规划,深入阐述了bin文件在固件升级中的核心作用,并提供了串口Bootloader的实战框架与常见问题解决方案。

weixin_29190169的博客 391

ACM竞赛、数论内容常用的定理(求解(a/b)%c,乘法逆元,费马小定理)

如果b与c互素,则(a/b)%c=a*b^((c)-1)%c其中是欧拉函数。或者(a/b)%c=a*b^(c-2)%c 如果b与c不互素,则(a/b)%c=(a%bc)/b 对于b与c互素和不互素都有(a/b)%c=(a%bc)/b成立 乘法逆元用扩展欧几里得定理: 例题:ZOJ - 3609 题干: The modular modular multiplicative inverse...

xuanweiace的博客 2133

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6807

弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制

基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制1. 前言2. 顶帽变换(Top_hat)算法3. Matlab仿真4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵“弱"和“小’’两个方面:“弱’’是指目标在红外波长上所表现出来的强度,具体反映到所拍摄的红外图像上,就是指目标的灰度值;而“小’’是指目标的尺寸大小,也就是前面所述的成像面积很小,反映到红外图像上就是指目标所占的像素数目很少。 SPIE国际光学工程学会(Societyof Photo一0ptical Instrument

sinat_34897952的博客 5292

HDU 1576 A/B(乘法逆元、费马小定理)

题目链接: HDU 1576 A/B 题意: 已知A%9973 = n,gcd(B, 9973)=1,给出n和B求A/B%9973. 分析: 裸的乘法逆元。利用费马小定理:因为gcd(B, 9973) = 1,且9973为质数,所以A/B%9973 = A%9973 * B^(9973 - 2) % 9973.#include <iostream> #include <cstdio> #i

ramay7 690

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 156

hdu 1576 A/B 乘法逆元 费马小定理

现学现卖 1.乘法逆元用来解决 (a/b)%p的问题 因为(a/b)%p 不等于 (a%p)/(b*p) 2.引入逆元相当于 把除法问题转化为乘法问题 3.当然要满足 ==1的条件 (类比于矩阵的逆) 4.本题进行转化后发现 gcd(B,9973)=1 直接上 快速幂(费马小定理) #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define..

violinwang 249

B3640 T3 句子反转

要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。第一次做的时候0分,两个小时没做出来。仅一行,表示程序对句子的处理结果。仅一行,即需要反转的句子。

小前日记 366

AES加密算法及AES-CMAC原理白话版系统解析

对AES不同加密算法,加密模式,加密原理,填充算法及AES-CMAC算法的详细系统介绍,帮助大家对AES进行系统掌握。

initiallizer的博客 4068

hdu1576-A/B-(同余定理+乘法逆元+费马小定理+快速幂)

A/B Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10383Accepted Submission(s): 8302 Problem Description 要求(A/B)%9973,但由于A很大,我们只给...

dengpan1889的博客 203

【QT/C++】事件过滤器之基于重写 eventFilter 方法的多种常见应用场景及实现

Qt事件过滤器通过重写eventFilter方法实现多种实用功能:1)鼠标事件处理(点击全选文本、禁用滚轮、悬停提示);2)键盘事件处理(输入内容限制、快捷键提交);3)焦点事件处理(自动弹出下拉框、实时验证);4)绘图事件处理(自定义控件绘制);5)窗口事件处理(防止意外关闭、尺寸限制)。事件过滤器提供非侵入式的事件处理方案,相比传统子类化方式更灵活,通过installEventFilter安装到目标控件即可实现各种交互增强功能。

yuhuasheng1997的博客 1484

HDUOJ1576.A/B(逆元 / 数论)

HDUOJ 1576.A/B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10675 Accepted Submission(s): 8542 Problem Description 要求(A/B)%9973,但由于A很大,我们...

qq_42794075的博客 218

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU 1576:A/B (乘法逆元)

A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4603    Accepted Submission(s): 3590 Problem Description 要求(A/B)%9973,但由于A很大,我们

小坏蛋_千千 813

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

HDU - 1576 A/B 乘法逆元 扩展欧几里得 快速幂 模板

GDUT 2020寒假训练 数论 C 原题链接 HDU - 1576 A/B C - A/B 题目 Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 Input 数据的第一行是一个T,表示有T组数据。 每组数据有两个数n(0 <= n < 9973)和B...

xcy2001的博客 262

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

( 数论专题 )【 乘法逆元 】

( 数论专题 )【 乘法逆元 】 乘法逆元 何为乘法逆元? 对于两个数a,p若gcd(a,p)=1则一定存在另一个数b,使得ab ≡ 1( modp ),并称此时的b为a关于1模p的乘法逆元。我们记此时的b为inv(a)或 a−1。 举个例子:5×3 ≡ 1( mod14 ) 我们称此时的3为5关于1模14的乘法逆元。 如何求乘法逆元? 方法一:费马小定理 费马小定理:当有两...

石旭先森的博客 1739

java中求a模b的逆_HDU 1576 -- A/B (总结乘法逆元的几种求法)

A/BTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7264Accepted Submission(s): 5774Problem Description要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我...

weixin_33793620的博客 1263

[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

乘法逆元 & hdu 1576 A/B

乘法逆元在除法取模运算中有着广泛的应用。 百度百科: 费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。 例如:a=5,p=7,满足p是质数,a,p互质的要求,因此有5^6%7=

theArcticOcean 1002

数论 - 逆元及费马小定理

逆元 代码如下 模版题 题意 题解 费马小定理 代码如下 费马小定理推广欧拉定理 求欧拉函数值代码 筛出欧拉函数值的表代码逆元在费马小定理之前,我们先引入逆元的概念,考虑求解一个同余线性方程ax≡b(modm)ax\equiv b(mod m),要怎样求解这个方程呢,在此之前,我们先看一下求解一般的线性方程的方法,一般地,我们能将一个一元一次方程化为如下的形式:ax=bax=b,那么在a有倒数的情

fanyiningHH的博客 754

HDU 1576 A/B

A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9797    Accepted Submission(s): 7865   Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=...

~ 453

hdu 1576 A/B(乘法逆元)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 题目思路:  求(A/B)%9973,等于是求B的逆元乘上n.求数的逆元可以用欧几里得算法求逆元。又因为9973是素数满足费马小定理 ,即,所以b的逆元,使用快速幂即可求得。 欧几里得代码: #include &lt;cstdio&gt; using namespace std; t...

Rainbow_storm的博客 325

hdu 1576 A/B 求逆元模板题

一些基本概念: 乘法逆元,是指数学领域群G中任意一个元素a,都在G中有唯一的逆元a‘,具有性质a×a'=a'×a=e,其中e为该群的单位元。   用[a]n代表x%n=a.的所有满足条件的x所组成的集合,其中a为集合中最小非负整数,用最小的非负整数来代表整个集合,即[a]n={a+k*n,k∈Z) Zn={ [0]n, [1]n ,[2]n ,[3]n ,…, [n-1]n } 在模

chen_minghui的博客 1296

A/B HDU - 1576 (逆元或拓展欧几里得或数学公式)多解法求大数结果

题意:求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。 思维:(1)逆元+扩展欧几里得算法:满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元。当且仅当gcd(k,p) = 1,如果可逆则可定义除法 x/k = x * a mod p (2)扩展欧几里得算法+递推公式:运用扩展欧几里德算法能解出...

zeng_jun_yv的博客 397

HDU 1576 A/B(乘法逆元)

有关乘法逆元:1,为什么要用乘法逆元。假设有这么一种情况:你需要求 a/b % M 的值,但是由于a过大,所以你在算a的过程中不断地取模了,当然对于加减乘来说这样并不改变结果的正确性,但是。。。之后你又得除以b,这就很尴尬了,假如你没有取模之前算出来的 a = 1 000 000 008 ,b = 2,但是M = 1 000 000 007,所以取模之后为1,1/2 等于多少呢?0,对吧,但是这

普通で歩む 393
上一篇: 最大子矩阵(HDU - 1559,前缀和)
下一篇: 最大连续子序列 (HDU - 1231,MCS)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值