5个测试点WA,5个测试点TLE,Help!!!

P1045 [NOIP2003 普及组] 麦森数

louzezhong20130517 @ 2023-09-17 20:39:09

#include<bits/stdc++.h> 
using namespace std;
const long long N=1e5+100000-2;
long long a[N];
int main(){
    int n,len=1,s,cnt=0;
    cin>>n;
    int i,j,k;
    a[1]=1;
    for(i=1;i<=n;i++) 
    {
        for(j=1;j<=len;j++)
        {
            a[j]*=2;
        }
        for(j=1;j<=len;j++)
        {
            s=0;
            if(a[j]>9)
            {
                a[j+1]+=a[j]/10;
                a[j]%=10;
                s=max(s,j+1);
            }
        }
        len=max(len,s);
    }
    for(i=len;i>=1;i--)
    {
        cnt++;
    }
    cout<<cnt<<endl;
    for(i=500;i>=1;i--)
    {
        cout<<a[i];
        if(i%50==0&&i!=500)
        {
            cout<<endl;
        }
    }
    return 0;
}

Help.


by Smiog @ 2023-10-02 19:41:15

@louzezhong20130517 用快速幂


by xiaoshumiao @ 2023-10-04 19:10:46

这道题用普通高精是不行的。而且你忘了减1.


|