【普及+/提高】洛谷P2613 ——【模板】有理数取余

见:P2613 【模板】有理数取余 - 洛谷

题目描述

给出一个有理数 c=ba​,求 cmod19260817 的值。

这个值被定义为 bx≡a(mod19260817) 的解。

输入格式

一共两行。

第一行,一个整数 a。
第二行,一个整数 b。

输出格式

一个整数,代表求余后的结果。如果无解,输出 Angry!

输入输出样例

in:
233
666
out:
18595654

说明/提示

对于所有数据,保证 0≤a≤1010001,1≤b≤1010001,且 a,b 不同时是 19260817 的倍数。

算法介绍

本题需使用逆元。

逆元即对于同余方程 ax≡1(modp),

则 x 为 amodp 的逆元,

记作 a−1。

若其满足 a∤p,

则 a−1≡ap−2(modp)。

本题中 a 和 b 为较大的整数,

可以用快读来读入,

并对 19260817 取模。

正确性证明

根据费马小定理可知 ap−1≡1(modp)。

费马小定理证明:

构造集合 S={1,2,3,…,p−1},

同时构造集合 S′={a,a×2,a×3,…,a×(p−1)}。

由于 a∤p,

所以 a 和 p 互质。

因此对于所有不同的 u 和 v,

一定满足 a×u≡a×v(modp)。

所以 S′ 是模 p 意义下的完全剩余系,

且没给元素都与 S 中的某个元素同余。

然后计算 S 的积 ∏S=1×2×3×…(p−1)=(p−1)!(modp),

以及 S′ 的积 ∏S′=a×(a×2)×(a×3)×…(a×(p−1))=ap−1×(p−1)!(modp)。

因为 S 和 S′ 都是模 p 意义下的完全剩余系,

所以两集合的积同余,即 (p−1)!≡ap−1×(p−1)!(modp)。

最后化简得 ap−1≡1(modp)。

证出费马小定理,可以推出逆元式子:

1≡1(modp)a1×a−1≡ap−1(modp)a−1≡ap−2(modp)

对于幂的计算,可以使用快速幂。

时间复杂度 O(logA)。

此题还要用快读

 由于 a/b 可能是超大整数(如 10^10000 量级),

需在读入时直接对 19260817 取模,

避免高精度计算。

因此,

需要改造传统的快读为“即时取模”的快读。
“即时取模”的快读是一种在输入大整数时直接进行取模运算的优化技术,

常用于处理需要大数运算但最终结果需取模的场景(如数论题目)。

其核心思想是在逐位读取数字时同步计算模值,

避免存储完整的大数。

“即时取模”的快读代码如下所示。

int read() {int x=0,f=1;char c=getchar();while(c<'0' || c>'9') {if(c=='-') f=-1;c=getchar();}while(c>='0' && c<='9') {x=(x*10LL+c-'0')%m;c=getchar();}return x*f;
}

代码实现

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int m=19260817;int read() {int x=0,f=1;char c=getchar();while(c<'0' || c>'9') {if(c=='-') f=-1;c=getchar();}while(c>='0' && c<='9') {x=(x*10LL+c-'0')%m;c=getchar();}return x*f;
}
ll fast(ll a,ll n,ll p) {ll s=1;while(n) {if(n&1)s=s*a%p;n>>=1;a=a*a%p;}return s%p;
}
int main() {ll a=read(),b=read();if(b==0)cout<<"Angry!";else cout<<a*fast(b,m-2,m)%m;return 0;
}

各位大佬 

鼓励一下

关注+收藏+点赞

好吗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/80997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK常见系统属性设置/获取命令使用

设置有线mac地址 ifconfig eth0 hw ether 021234567000 读取mac地址 public static String getEthMacAddressBySysFs() { try (BufferedReader reader new BufferedReader(new FileReader("/sys/class/net/eth0/address"))) { return reader.r…

文章记单词 | 第115篇(六级)

一&#xff0c;单词释义 solar /ˈsoʊlər/ adj. 太阳的&#xff1b;太阳能的bruise /bruːz/ n. 瘀伤&#xff1b;擦伤 v. &#xff08;使&#xff09;青肿&#xff1b;挫伤thus /ʌs/ adv. 因此&#xff1b;这样&#xff1b;于是drink /drɪŋk/ v. 喝&#xff1b;饮 n. 饮…

9大开源AI智能体概况

项目GitHub 链接开发组织核心功能应用领域典型应用案例活跃度AutoGPT (176k⭐)链接Significant Gravitas 团队基于 GPT-4 的自主代理&#xff0c;能够自动分解任务并生成多步提示循环执行&#xff0c;支持调用工具&#xff08;如网络搜索、文件操作等&#xff09;。自动化办公、…

SpringBoot3整合WebSocket

一、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信&#xff0c;允许服务器主动向客户端推送数据。 与传统的 HTTP 请求-响应模式不同&#xff0c;WebSocket 在建立连接后&#xff0c;允许服务器和客户端之间进行双向…

FTP Bounce Attack:原理、影响与防御

一、引言 FTP&#xff08;文件传输协议&#xff09;是一种用于在网络上进行文件传输的协议&#xff0c;广泛应用于各种网络环境中。然而&#xff0c;FTP协议的安全性问题一直备受关注&#xff0c;其中FTP Bounce Attack&#xff08;FTP跳转攻击&#xff09;是一种具有代表性的…

文献阅读——NeuroBayesSLAM

原文地址 1.核心理论&#xff1a;贝叶斯多感官整合框架 目标&#xff1a;结合视觉线索 c v i c_{vi} cvi​和前庭线索 c v e c_{ve} cve​来估计头部方向或位置 θ 贝叶斯公式 p ( θ ∣ c v i , c v e ) ∝ p ( c v i ∣ θ ) p ( c v e ∣ θ ) p ( θ ) p(\theta | c_{vi…

sentinel核心原理-高频问题

核心原理 ‌限流实现机制‌ ‌滑动窗口算法‌&#xff1a;将时间切分为子窗口动态统计QPS&#xff0c;避免固定窗口的边界问题。‌责任链模式‌&#xff1a;通过NodeSelectorSlot、FlowSlot等Slot链式处理限流逻辑。 ‌熔断降级策略‌ ‌慢调用比例‌&#xff1a;当慢请求比例…

DataX 的大概简单介绍(与Kettle做对比介绍)

DataX 是由阿里巴巴开源的轻量级 ETL 工具&#xff0c;专为批量数据同步设计&#xff0c;主打 “高性能、易扩展、跨数据源”。如果你熟悉 Kettle&#xff0c;可把它理解为 “更适合大数据场景的 ETL 选手”。以下从核心特性、应用场景、与 Kettle 对比等角度通俗解析&#xff…

通过上传使大模型读取并分析文件实战

一、技术背景与需求分析 我们日常在使用AI的时候一定都上传过文件&#xff0c;AI会根据用户上传的文件内容结合用户的请求进行分析&#xff0c;给出用户解答。但是这是怎么实现的呢&#xff1f;在我们开发自己的大模型应用时肯定是不可避免的要思考这个问题&#xff0c;今天我会…

RHCSA Linux 系统 硬盘管理

Linux 系统 硬盘管理 1扇区 512B&#xff0c;分区 多个扇区 512B 查看硬盘命令 [rootlocalhost ~]# lsblk 1.一般存储相关操作 (1) 分区 ① MBR 分区 ➤分区数量限制&#xff1a;主分区 0 - 4 个&#x…

计算机网络——Session、Cookie 和 Token

在 Web 开发中&#xff0c;Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系&#xff0c;也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义&#xff1a; 是浏览器存储在客户端的小…

双均线量化交易策略指南

策略原理 采用两条不同周期的简单移动平均线&#xff08;SMA&#xff09;&#xff1a; 短期均线&#xff1a;5日线&#xff08;快速反应价格变化&#xff09;长期均线&#xff1a;20日线&#xff08;反映长期趋势&#xff09; 交易信号生成规则&#xff1a; 当 5日线 > …

视频太大?用魔影工厂压缩并转MP4,画质不打折!

在日常生活中&#xff0c;我们常常需要将视频文件转换成不同的格式以适应各种设备或平台的播放需求。魔影工厂作为一款功能强大且操作简单的视频转换工具&#xff0c;深受用户喜爱。本文中简鹿办公将手把手教你如何使用魔影工厂将视频转换为MP4格式&#xff0c;并进行个性化设置…

大腾智能 PDM 系统:全生命周期管理重塑制造企业数字化转型路径

在当今激烈的市场竞争中&#xff0c;产品迭代速度与质量已成为企业生存与发展的核心命脉。面对客户需求多元化、供应链协同复杂化、研发成本管控精细化等挑战&#xff0c;企业亟需一套能够贯穿产品全生命周期的数字化解决方案。 大腾智能PDM系统通过构建覆盖设计、研发、生产、…

CodeBuddy一腾讯内部已有超过 85% 的程序员正在使用de编程工具

大家好&#xff0c;我是程序员500佰&#xff0c;目前正在前往独立开发路线&#xff0c;我会在这里分享关于编程技术、独立开发、技术资讯以及编程感悟等内容。 如果本文能给你提供启发和帮助&#xff0c;还请留下你的一健三连&#xff0c;给我一些鼓励&#xff0c;谢谢。 本文直…

解锁 Zblog 资讯系统:502 错误修复与双域名适配的实战秘籍

在网络世界的激烈竞争中&#xff0c;资讯类网站如同战场上的士兵&#xff0c;每一次页面加载、每一次内容展示都关乎着用户的留存与转化。而 Zblog 作为备受青睐的资讯系统&#xff0c;承载着众多站长的流量梦想。然而&#xff0c;在网站运营过程中&#xff0c;502 错误页面的突…

今日打卡,Leetcode第四题:寻找两个正序数组的中位数,博主表示就会sorted

4. 寻找两个正序数组的中位数 博主只会第一个暴力解法&#xff0c;然后将官网上的源码上添加些注释&#xff0c;尝试理解&#xff0c;分下今日刷题记录 题目描述 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个…

Jouier 普及组十连测 R3

反思 首先&#xff0c;先悔恨一下这次的比赛成绩。 这次比赛的教训就是&#xff0c;简单的题目一定要打不要被复杂的题面震慑到&#xff0c;以及变量名不能是保留字&#xff0c;如第一题的x1,y1&#xff0c;要开long long&#xff0c;计算好数据范围&#xff0c;如第三第四题。…

Open CASCADE学习|非线性方程组求解技术详解

引言 在几何建模与工程计算中&#xff0c;非线性方程组的求解是常见的核心问题。Open CASCADE&#xff08;以下简称OCC&#xff09;作为开源的几何建模内核&#xff0c;提供了丰富的数学工具库&#xff0c;其中math_FunctionSetRoot类专为求解非线性方程组设计。本文将深入探讨…

科技初创企业创新推动商业未来

在这个因变革而蓬勃发展的世界里&#xff0c;科技初创企业已成为各行业创新、颠覆与转型的驱动力。这些雄心勃勃的企业正在重塑商业格局&#xff0c;挑战既定规范&#xff0c;并不断突破可能性的边界。本文将深入探索科技初创企业的精彩领域&#xff0c;探讨它们如何通过创新塑…