1 条题解

  • 1
    @ 2025-1-16 13:05:32
    #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
    上传者