1 条题解
-
1
#include<iostream> #include<map> using namespace std; map<long long,bool>a;//记忆化用的,用来存是否搜到过 map<long long,long long>b;//记忆化用的,用来存数据 const int m=6662333; long long n,p; long long mi(long long d,long long c){//d表示底数,c表示次数 if(c==1)return d%m; if(c==0)return 1; if(a[c])return b[c];//如果搜到过,那就返回存储的数据 a[c]=1;//没有的话这次搜到了,a变为1 b[c]=((mi(d,c/2)%m)*(mi(d,c-c/2)%m))%m;//存储数据 return b[c]; } int main(){ cin>>n; n--; p=mi(2,n); p%=m; cout<<p; return 0; }```language
信息
- ID
- 7443
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 23
- 已通过
- 11
- 上传者