【蓝桥杯2025备赛】集合求和

devtools/2024/9/23 1:05:20/

集合求和

题目描述

给定一个集合 s s s(集合元素数量 ≤ 30 \le 30 30),求出此集合所有子集元素之和。

输入格式

集合中的元素(元素 ≤ 1000 \le 1000 1000

输出格式

s s s 所有子集元素之和。

样例 #1

样例输入 #1

2 3

样例输出 #1

10

提示

【样例解释】

子集为: ∅ , { 2 } , { 3 } , { 2 , 3 } \varnothing, \{ 2 \}, \{ 3 \}, \{ 2, 3 \} ,{2},{3},{2,3},和为 2 + 3 + 2 + 3 = 10 2 + 3 + 2 + 3 = 10 2+3+2+3=10


【数据范围】

对于 100 % 100 \% 100% 的数据, 1 ≤ ∣ s ∣ ≤ 30 1 \le \lvert s \rvert \le 30 1s30 1 ≤ s i ≤ 1000 1 \le s_i \le 1000 1si1000 s s s 所有子集元素之和 ≤ 10 18 \le {10}^{18} 1018

标签:集合论,数学,排列组合

知识点:

  • 集合所有子集中的每个元素个数总和是相等的

  • 集合所有子集之和= s u m ∗ 2 n − 1 sum*2^{n-1} sum2n1(n代表元素的个数,sum是元素的和)

思路

我们先模拟一下,求集合所有子集之和的过程

以A= { 1 , 2 , 3 , 4 } \left\{1,2,3,4\right\} {1,2,3,4}为例

  • 0 元子集 : 0元子集: 0元子集: ∅ \varnothing

  • 1 元子集 : { 1 } 1元子集:\left\{1\right\} 1元子集:{1} { 2 } \left\{2\right\} {2} { 3 } \left\{3\right\} {3} { 4 } \left\{4\right\} {4}

  • 2 元子集 2元子集 2元子集 { 1 , 2 } \left\{1,2\right\} {1,2} { 1 , 3 } \left\{1,3\right\} {1,3} { 1 , 4 } \left\{1,4\right\} {1,4} { 2 , 3 } \left\{2,3\right\} {2,3} { 2 , 4 } \left\{2,4\right\} {2,4} { 3 , 4 } \left\{3,4\right\} {3,4}

  • 3 元子集 : 3元子集: 3元子集: { 1 , 2 , 3 } \left\{1,2,3\right\} {1,2,3} { 1 , 2 , 4 } \left\{1,2,4\right\} {1,2,4} { 1 , 3 , 4 } \left\{1,3,4\right\} {1,3,4} { 2 , 3 , 4 } \left\{2,3,4\right\} {2,3,4}

  • 4 元子集 : 4元子集: 4元子集: { 1 , 2 , 3 , 4 } \left\{1,2,3,4\right\} {1,2,3,4}

我们仔细观察一下所有的集合,我们可以发现1出现的次数和2,3,4出现的次数是相等的,出现了八次

我们可以猜想在集合所有子集中每个元素出现次数为 2 n − 1 2^{n-1} 2n1次,集合A中所有元素之和为sum

所有子集之和 = 所有子集之和= 所有子集之和= s u m ∗ 2 n − 1 sum*2^{n-1} sum2n1

下面是我朴素的推理过程,不保证对,发现不对之处还望指出,万分感谢!!!

在这里插入图片描述

在这里插入图片描述

ok,那就直接上代码了

#include<bits/stdc++.h>
#define int long long
int a[1005];
int ans,sum;
signed main()
{int s;while(scanf("%lld",&s)!=-1){if(a[s]==0){ans+=s;sum++;}}ans*=pow(2,sum-1);printf("%lld",ans);return 0;
}

我们下期再见!!!


http://www.ppmy.cn/devtools/7836.html

相关文章

大创项目推荐 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &am…

碎碎笔记01

1. 多元线性回归 通过现有数据&#xff0c;总结出数据所对应的线性方程的斜率与截距 f ( x 1 , x 2 , . . . , x n ) w 1 x 1 w 2 x 2 . . . w n x n b f(x_1, x_2, ..., x_n) w_1x_1 w_2x_2 ... w_nx_n b f(x1​,x2​,...,xn​)w1​x1​w2​x2​...wn​xn​b w&a…

wasm 系列之 WebAssembly 和 emscripten 暴力上手

wasm 是什么&#xff1f; wasm 是 WebAssembly 的缩写。wasm 不是传统意义上的汇编语言&#xff0c;而是一种编译的中间字节码&#xff0c;可以在浏览器和其他 wasm runtime 上运行非 JavaScript 类型的语言&#xff0c;只要能被编译成 wasm&#xff0c;譬如 kotlin/wasm、Rus…

展开说说:Android Fragment完全解析-卷二

书接上回&#xff0c;说一下fragment搭配Viewpager的使用。 是什么 Fragment已经在卷一整理过了&#xff0c;这里说一下ViewPager&#xff0c;ViewPager是一个可以左右滑动的容器组件&#xff0c;继承自ViewGroup。一般是用在首页banner和详情页的轮播图展示、APP首次使用的新…

每日算法4/21

LCR 073. 爱吃香蕉的狒狒 题目 狒狒喜欢吃香蕉。这里有 N 堆香蕉&#xff0c;第 i 堆中有 piles[i] 根香蕉。警卫已经离开了&#xff0c;将在 H 小时后回来。 狒狒可以决定她吃香蕉的速度 K &#xff08;单位&#xff1a;根/小时&#xff09;。每个小时&#xff0c;她将会选…

【深度学习-番外1】Win10系统搭建VSCode+Anaconda+Pytorch+CUDA深度学习环境和框架全过程

专栏的老读者们都知道&#xff0c;以前的文章以使用MATLAB的为多。 不过后续陆续开始展开深度学习算法的应用&#xff0c;就会逐渐引入Python语言了&#xff08;当然MATLAB的代码也会同步更新&#xff09;&#xff0c;这是由于在深度学习领域&#xff0c;Python应用更为广泛。…

Redis详解和Spring Data Redis应用

注意事项 如何快速进入命令行窗口什么是配置类 Redis简介 Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。它通常被称为数据结构服务器&#xff0c;因为值&#xff08;value&#xff09…

安卓手机APP开发__媒体开发部分__网络栈

安卓手机APP开发__媒体开发部分__网络栈 目录 概述 配置ExoPlayer来使用一个特定的网络栈 支持的网络栈 Cronet OkHttp 安卓内嵌的网络栈 其它的网络栈