原题连接点击这里
第一眼看,题意很明确,思路就是求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; }