列表

详情


NC54786. 小民与切糕

描述

小民今天在小门买了一块切糕,切糕很长,由n个小块组成,第i块有a_i的美味度。
小民吃切糕时,一般会从切糕中取出几块,然后一口吃掉,此时小民得到的满足度为取出的块的美味度之和。
现在小民想知道,如果他将所有取法都尝试一遍,总共能够得到多少的满足度。

输入描述

第一行包含一个整数n,表示切糕中块的个数
第二行包含n个整数,第i个整数a_i表示第i块切糕的美味度


输出描述

输出一行一个整数,表示能够得到的总满足度

示例1

输入:

3
1 2 3

输出:

24

说明:

可能的取法:

1

2

3

1+2

1+3

2+3

1+2+3

原站题解

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

C++(clang++ 11.0.1) 解法, 执行用时: 4ms, 内存消耗: 456K, 提交时间: 2022-09-24 23:14:33

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int n,m,s=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m;
		s+=m;
	}
	printf("%d",s*(int)pow(2,n-1));
	return 0;
 } 

C 解法, 执行用时: 2ms, 内存消耗: 360K, 提交时间: 2022-09-24 14:11:49

#include<stdio.h>
#include<math.h>
int main(){
	int sum=0;
	int n,i,x;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&x);
		sum+=x;
	}
	int d=pow(2,n-1);
	printf("%d",d*sum);
}

Python3(3.5.2) 解法, 执行用时: 33ms, 内存消耗: 3432K, 提交时间: 2019-11-30 22:42:00

n = int(input())
print(pow(2, n - 1) * sum(list(map(int, input().split()))))

上一题