列表

详情


NC220709. Cutthegoldbar

描述

有一天,fishfloss被一阵暴风卷到了一个不知名的岛上,这个岛很漂亮,他想要好好参观一下,
但是他并不认路,很巧的是,在路途中他遇到了一个身无分文的人前来求助,于是他决定请这个人来当自己的导游。
fishfloss身上只有一把小刀和一根长度未知的金条,他每天给这个人长度为1的金条作为报酬,
在必须切n刀的情况下,金条有多少种可满足上述付款方式且能付完的长度?

输入描述

一行,为切的刀数n 
(1≤n≤40)

输出描述

一行,为金条有多少种长度

示例1

输入:

1

输出:

2

说明:

切一刀的情况下,显然有2,3两种长度满足每天付1节金条题意。长度为2切1刀,成两个长度为1的,每天付给导游1,付两天。长度为3,切1刀分为1和2长度,第一天付1节金条,第二天付2节找回1节金条,第三天付3节金条,共付三天。

示例2

输入:

2

输出:

5

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Java(javac 1.8) 解法, 执行用时: 26ms, 内存消耗: 12076K, 提交时间: 2021-04-20 17:55:52

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
//        int[] dp=new int[n+3];
        long[] kuai=new long[n+5];
        long[] kuaiSum=new long[n+5];
        kuai[1]=1;
        kuai[2]=2;
        kuai[3]=4;
        kuaiSum[1]=1;
        kuaiSum[2]=3;
        kuaiSum[3]=7;
        for (int i=4;i<=n+1;++i){
            kuai[i]=kuaiSum[i-1]+1;
            kuaiSum[i]=kuaiSum[i-1]+kuai[i];
        }

//        dp[1]=2;
//        dp[2]=5;
//        for (int i=3;i<=n;++i){
//            int max=0;
//            for (int j=1;j<=i/2+1;++j){
//                max=Math.max(max, dp[j]+dp[i-j]);
//            }
//            dp[i]=max;
//        }
         System.out.println(kuaiSum[n+1]-n);
       
    }

}

C(clang11) 解法, 执行用时: 3ms, 内存消耗: 368K, 提交时间: 2021-04-20 15:32:21

#include <stdio.h>
#include <stdlib.h>

int main()
{
    long long n = 0;
    long long a = 1;
    scanf("%lld", &n);
    a = pow((double)2, (double)(n + 1)) - 1;
    a = a - n - 1;
    printf("%lld", a + 1);
    return 0;
}

C++(clang++11) 解法, 执行用时: 4ms, 内存消耗: 404K, 提交时间: 2021-04-23 12:51:10

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll n;
	scanf("%lld",&n);
	printf("%lld",(ll)pow(2,n+1)-1-n);
	return 0;
}

Python3 解法, 执行用时: 41ms, 内存消耗: 4616K, 提交时间: 2022-04-08 08:14:24

import math
m = int(input())
if m == 1:
    print(2)
else:
    s = int(math.pow(2, m+1)-1-m)
    print(s)

上一题