原題連接點擊這裏
第一眼看,題意很明確,思路就是求b的逆元,
(不會逆元的,能夠看我這一篇博客點擊這裏
可是一看數據範圍\(10^{10001}\)
一開始還在想也不要打高精,仔細想一想不用
由於模運算具備加減乘性質,加減乘中間任何數取模都不會影響模的結果
因此咱們把一個數用字符串讀入,而後\(x=(x*10+s[i]-'0')%p\)
對a取模獲得的結果不影響,至於爲何對b取模獲得的結果也不影響
仍是去看我那篇博客裏面有講點擊這裏
而後就是遞歸求單個逆元html
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll p,ans,t,a,b; ll getinv(int x){ return x==1?1:1ll*(p-(p/x))*getinv(p%x)%p; } ll exch(string s){ ll x=0; int len=s.size(); for(int i=0;i<s.size();i++){ x=x*10+s[i]-'0'; x%=p; } return x; } int main(){ p=19260817; string sa,sb; cin.sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>sa>>sb; a=exch(sa); b=exch(sb); ans=a*getinv(b)%p ; cout<<ans; }