4 条题解

  • -1
    @ 2023-5-13 10:44:34

    如果只有n个塔,最少次数是2^n-1。那么2n个塔代入进去就是2*(2^n-1)

    先计算2^n-1再*2未免麻烦,拆括号后可得到2^(n+1)-2,计算代码可以借鉴P1194

    const int N=1e5+10;
    int a[N],n,len=1;
    int main(){
    	cin>>n;
    	a[1]=1;
    	for(int i=1;i<=n+1;i++){
    		for(int j=1;j<=len;j++)a[j]*=2;
    		for(int j=1;j<=len;j++){
    			a[j+1]+=a[j]/10;
    			a[j]%=10;
    		}
    		if(a[len+1]>0)len++;
    	}
        a[1]-=2;//一般要判断是否要借位,但2^(n+1)(n>=1)试一下会发现个位必然大于等于2
    	for(int i=len;i>=1;i--)cout<<a[i];
    	return 0;
    }
    

    信息

    ID
    694
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    80
    已通过
    30
    上传者