【普及+/提高】洛谷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
繁體地址,請注明出處:http://hk.pswp.cn/web/80997.shtml
英文地址,請注明出處:http://en.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;探討它們如何通過創新塑…