codeforces 17 D Notepad 快速幂?
Posted 13rj1115
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeforces 17 D Notepad 快速幂?相关的知识,希望对你有一定的参考价值。
题意:求((b-1)*bn-1)%c b和n都很大很大
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <string> #include <map> #include <queue> #include <stack> #include <vector> using namespace std; #define LL long long char b[1000005],n[1000005]; int main() { int i,j,k,m,len1,len2,c; LL tp,ans,x; while(scanf(" %s %s %d",b,n,&c)!=EOF) { len1=strlen(b); x=0; for(i=0; i<len1; i++) { x=x*10+b[i]-‘0‘; x%=c; } ans=x-1; if(ans<0) ans+=c; len2=strlen(n); for(i=len2-1; i>=0; i--) { if(n[i]>‘0‘) { n[i]--; break; } n[i]=‘9‘; } for(i=len2-1; i>=0; i--) { tp=x; for(j=1; j<=9; j++) { if(j==n[i]-‘0‘) ans*=x; x*=tp; x%=c; } ans%=c; } if(ans==0) ans=c; printf("%lld\n",ans); } return 0; }
以上是关于codeforces 17 D Notepad 快速幂?的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #420 D题翻译(17.6.25)
codeforces 570 D Tree Requests
codeforces 718 C&DC. Sasha and Array&D. Andrew and Chemistry