2023牛客暑期多校訓練營9-B Semi-Puzzle: Brain Storm

2023牛客暑期多校訓練營9-B Semi-Puzzle: Brain Storm

https://ac.nowcoder.com/acm/contest/57363/B

文章目錄

  • 2023牛客暑期多校訓練營9-B Semi-Puzzle: Brain Storm
    • 題意
    • 解題思路
    • 代碼

題意

在這里插入圖片描述

解題思路

歐拉定理
a b ≡ { a b % φ ( p ) g c d ( a , p ) = 1 a b g c d ( a , p ) ≠ 1 , b < φ ( p ) a b % φ ( p ) + φ ( p ) g c d ( a , p ) ≠ 1 , b ≥ φ ( p ) a^b\equiv \begin{cases} &a^{b\%\varphi(p)}~~&gcd(a,p)=1\\ &a^b~~&gcd(a,p)\neq 1,b<\varphi(p)\\ &a^{b\%\varphi(p)+\varphi(p)}~~&gcd(a,p)\neq 1,b\ge\varphi(p) \end{cases} ab? ? ???ab%φ(p)??ab??ab%φ(p)+φ(p)???gcd(a,p)=1gcd(a,p)=1,b<φ(p)gcd(a,p)=1,bφ(p)?
a u ≡ u ( m o d p ) 設 d = u % φ ( p ) + φ ( p ) u = d + k φ ( p ) a d + k φ ( p ) ≡ d + k φ ( p ) ( m o d p ) a d ? d ≡ k φ ( p ) ( m o d p ) \begin{matrix} a^u\equiv u\pmod p\\ 設d=u\%\varphi(p)+\varphi(p)\\ u=d+k\varphi(p)\\ a^{d+k\varphi(p)}\equiv d+k\varphi(p)\pmod p\\ a^d-d\equiv k\varphi(p)\pmod p \end{matrix} auu(modp)d=u%φ(p)+φ(p)u=d+kφ(p)ad+kφ(p)d+kφ(p)(modp)ad?dkφ(p)(modp)?
將取余打開,可得:
φ ( p ) x + p y = a d ? d \begin{matrix} \varphi(p)x+py=a^d-d \end{matrix} φ(p)x+py=ad?d?
顯然可以用擴展歐幾里得求解當 φ ( p ) x + p y = gcd ? ( p , ? ( p ) ) \varphi(p)x+py=\gcd(p,\phi(p)) φ(p)x+py=gcd(p,?(p))的解,為保證 d d d有解,故 gcd ? ( p , φ ( p ) ) ∣ a d ? d \gcd(p,\varphi(p))\mid a^d-d gcd(p,φ(p))ad?d,設 a d ? d = h gcd ? ( φ ( p ) , p ) a^d-d=h\gcd(\varphi(p),p) ad?d=hgcd(φ(p),p),故 a d = h gcd ? ( φ ( p ) , p ) + d a^d=h\gcd(\varphi(p),p)+d ad=hgcd(φ(p),p)+d,可以發現 a d ≡ d ( m o d gcd ? ( φ ( p ) , p ) ) a^d\equiv d\pmod{\gcd(\varphi(p),p)} add(modgcd(φ(p),p)),可以發現形式上與 a u ≡ u ( m o d p ) a^u\equiv u\pmod p auu(modp),顯然當 p = 1 p=1 p=1時, u = 0 u=0 u=0,有了邊界條件,可以遞歸求出 u u u u = d + k φ ( p ) u=d+k\varphi(p) u=d+kφ(p) k k k即為 φ ( p ) x + p y = a d ? d \varphi(p)x+py=a^d-d φ(p)x+py=ad?d x x x的解,當求出 φ ( p ) x 0 + p y 0 = gcd ? ( p , ? ( p ) ) \varphi(p)x_0+py_0=\gcd(p,\phi(p)) φ(p)x0?+py0?=gcd(p,?(p)):
x = x 0 × ( a d ? d gcd ? ( φ ( p ) , p ) % p ) = x 0 × ( ( a d ? d ) % p gcd ? ( φ ( p ) , p ) ) \begin{matrix} x=&x_0\times(\dfrac{a^d-d}{\gcd(\varphi(p),p)}\% p)\\ =&x_0\times(\dfrac{(a^d-d)\% p}{\gcd(\varphi(p),p)}) \end{matrix} x==?x0?×(gcd(φ(p),p)ad?d?%p)x0?×(gcd(φ(p),p)(ad?d)%p?)?

代碼

#include<bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
using namespace std;
ll T,a,m;
ll phi(ll n){ll sum=n;for(ll i=2;i*i<=n;i++){if(n%i==0){while(n%i==0)n/=i;sum/=i,sum*=i-1;}}if(n>1)return sum/n*(n-1);return sum;
}
ll exgcd(ll a,ll b,ll &x,ll &y){if(!b){x=1,y=0;return a;}ll v=exgcd(b,a%b,y,x);y-=a/b*x;return v;
}
ll power(ll x,ll p,ll mod){ll res=1;while(p){if(p&1)res*=x,res%=mod;x*=x,x%=mod;p>>=1;}return res;
}
ll dfs(ll a,ll p){if(p==1)return 0;ll ph=phi(p);ll x,y;ll v=exgcd(ph,p,x,y);x=(x%p+p)%p;ll d=dfs(a,v)+ph;return d+(x*((power(a%p,d,p)-d%p+p)%p/v)%p)*ph;
}
void solve(){cin>>a>>m;ll x=dfs(a,m);cout<<x<<'\n';
}
int main(){cin>>T;while(T--)solve();
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41788.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41788.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41788.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GBU812-ASEMI新能源專用整流橋GBU812

編輯&#xff1a;ll GBU812-ASEMI新能源專用整流橋GBU812 型號&#xff1a;GBU812 品牌&#xff1a;ASEMI 封裝&#xff1a;GBU-4 恢復時間&#xff1a;&#xff1e;50ns 正向電流&#xff1a;80A 反向耐壓&#xff1a;1200V 芯片個數&#xff1a;4 引腳數量&#xff…

Linux系統調試——valgrind內存泄露檢測

代碼可能存在內存泄露怎么辦&#xff1f; 使用valgrind可以對代碼進行內存泄露檢測。 valgrind下載安裝 下載&#xff1a;https://www.valgrind.org/downloads/ 安裝&#xff1a; 1、tar –jxvf valgrind-3.21.0.tar.bz2 2、cd valgrind-3.21.0 3、./configure --prefix/ho…

elementUI date-picker 日期格式轉為 2023/08/08格式

<el-form-item label"基線日期:" prop"baselineDate"><el-date-pickertype"date"v-model"form.baselineDate"placeholder"選擇日期"format"yyyy/MM/dd"change"(date, type) > changeTime(date, …

Springboot 實踐(7)springboot添加html頁面,實現數據庫數據的訪問

前文講解&#xff0c;項目已經實現了數據庫Dao數據接口&#xff0c;并通過spring security數據實現了對系統資源的保護。本文重點講解Dao數據接口頁面的實現&#xff0c;其中涉及頁面導航欄、菜單欄及頁面信息欄3各部分。 1、創建html頁面 前文講解中&#xff0c;資源目錄已經…

使用愛校對提升公文材料準確性的必要性

在我們的工作中&#xff0c;公文材料的準確性往往決定了我們的工作效果。無論是內部的報告、計劃&#xff0c;還是外部的公告、通知&#xff0c;都需要準確無誤才能達到我們預期的效果。為此&#xff0c;我們需要使用強大的工具——愛校對&#xff0c;來提升公文材料的準確性。…

Linux(Ubuntu)系統臨時IP以及靜態IP配置(關閉、啟動網卡等操作)

1 Ubuntu臨時IP設置2 Ubuntu靜態IP設置3 多個網卡IP設置4 關閉、啟動網卡前提是Linux下的網絡橋接不能用,不能通過識別網卡來添加IP地址,只能通過靜態寫死的方式去設置IP 對于CentOS版本下的靜態IP的配置可以參考這篇 Linux系統靜態IP配置(CentOS) 1 Ubuntu臨時IP設置 Li…

SpringBoot整合Shiro實現登錄認證,鑒權授權

文章目錄 前言一、shiro簡介二、環境搭建2.1.數據庫2.1.1user用戶表2.1.2user_role用戶角色關系表2.1.3role角色表2.1.4role_permission角色權限關系表2.1.5permission權限表 2.2導坐標2.3實體類2.3.1User2.3.2Role2.3.3Permission 2.4MVC三層2.4.1User2.4.1.1mapper層2.4.1.2s…

Git 刪除 GitHub倉庫的文件

新建文件夾 git bash here 在新建的文件夾里右鍵git bash here打開終端&#xff0c;并執行git init初始化倉庫 git clone <你的地址> 找到github上要刪除的倉庫地址&#xff0c;并復制&#xff0c;在終端里輸入git clone <你的地址> 要刪除文件的庫里右鍵git b…

BEV感知實時構建路口拓撲 覺非科技基于MapTR的優化與實踐

近期&#xff0c;覺非科技通過在車端與路端的大規模數據積累&#xff0c;基于MapTR&#xff08;Map TRansformer&#xff09;方法提出了創新與優化&#xff1a;①對車道信息的表達方式進行優化&#xff0c;并簡化了模型結構&#xff1b;②在MapTR的基礎上加入了地圖先驗信息&am…

歸并排序(C++ mpi 并行實現)

文章目錄 主要思路1. 串行歸并排序2. 進程的分發3. 對接收到的子數組進行排序4. 合并數組5.輸出排序后的數組6.進程分發部分的優化7.完整代碼 主要思路 我們首先實現串行的歸并排序&#xff1b;實現進程的分發&#xff1b;排序其中的每個子部分&#xff1b;進程的合并通信&…

Spring、Springboot、SpringCloud--包含的知識點大全

類型難度AOPspring-自定義AOP面向切面注解--統一切面處理-登陸信息采集快速入門SpringbootAOP實現切面處理請求Demo線程池通俗易懂的線程池底層原理&#xff0c;一文知所有數據結構數據結構-鏈表篇數據結構--數組篇數據結構之-concurrentHashMap源碼分析JVMJVM調優及各種問題處…

理解 Go 中的切片:append 操作的深入分析(篇2)

理解 Go 語言中 slice 的性質對于編程非常有益。下面&#xff0c;我將通過代碼示例來解釋切片在不同函數之間傳遞并執行 append 操作時的具體表現。 本篇為第 2 篇&#xff0c;當切片的容量 cap 不夠時 func main() {// slice1 當前長度為 3&#xff0c;容量大小也為 3slice1 :…

.netcore grpc的proto文件字段詳解

一、.proto文件字段概述 grpc的接口傳輸參數都是根據.proto文件約定的字段格式進行傳輸的grpc提供了多種類型字段&#xff1b;主要包括標量值類型&#xff08;基礎類型&#xff09;、日期時間、可為null類型、字節、列表、字典、Any類型&#xff08;任意類型&#xff09;、One…

前端筆試+面試分享

以下是個人線下面試遇到的真實的題&#xff0c;僅供參考和學習 1. css 選擇符有哪些&#xff1f;哪些屬性可以繼承&#xff1f;優先級算法加何計算&#xff1f; CSS選擇符有很多種&#xff0c;例如類型選擇器、類選擇器、ID選擇器、屬性選擇器、偽類選擇器、偽元素選擇器等。 …

【1day】復現海康威視綜合安防管理平臺artemis接口Spring boot heapdump內存泄露漏洞

目錄 一、漏洞描述 二、影響版本 三、資產測繪 四、漏洞復現 一、漏洞描述 HIKVISION iSecure Center綜合安防管理平臺是一套“集成化”、“智能化”的平臺,通過接入視頻監控、一卡通

Algorithem Review 5.2 圖論

網絡流 設源點為 s s s&#xff0c;匯點為 t t t&#xff0c;每條邊 e e e 的流量上限為 c ( e ) c(e) c(e)&#xff0c;流量為 f ( e ) f(e) f(e)。割 指對于某一頂點集合 P ? V P \subset V P?V&#xff0c;從 P P P 出發指向 P P P 外部的那些原圖中的邊的集合&a…

回歸預測 | MATLAB實現基于SSA-KELM-Adaboost麻雀算法優化核極限學習機結合AdaBoost多輸入單輸出回歸預測

回歸預測 | MATLAB實現基于SSA-KELM-Adaboost麻雀算法優化核極限學習機結合AdaBoost多輸入單輸出回歸預測 目錄 回歸預測 | MATLAB實現基于SSA-KELM-Adaboost麻雀算法優化核極限學習機結合AdaBoost多輸入單輸出回歸預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本…

SSH遠程連接MacOS catalina并進行終端顏色配置

一、開關SSH服務 在虛擬機上安裝了MacOS catalina&#xff0c;想要使用SSH遠程進行連接&#xff0c;但是使用“系統偏好設置”/“共享”/“遠程登錄”開關進行打開&#xff0c;卻一直是正在啟動“遠程登錄”&#xff1a; 難道是catalina有BUG&#xff1f;不過還是有方法的&…

第07天 Static關鍵字作用及用法

?作者簡介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;熱愛Java后端開發者&#xff0c;一個想要與大家共同進步的男人&#x1f609;&#x1f609; &#x1f34e;個人主頁&#xff1a;Leo的博客 &#x1f49e;當前專欄&#xff1a;每天一個知識點 ?特色專欄&#xff1a…

【前端|Javascript第5篇】全網最詳細的JS的內置對象文章!

前言 在當今數字時代&#xff0c;前端技術正日益成為塑造用戶體驗的關鍵。我們在開發中需要用到很多js的內置對象的一些屬性來幫助我們更快速的進行開發。或許你是剛踏入前端領域的小白&#xff0c;或者是希望深入了解內置對象的開發者&#xff0c;不論你的經驗如何&#xff0c…