洛谷 P2415 集合求和

原文链接:洛谷 P2415 集合求和 

一、题目链接

集合求和 - 洛谷

妥妥的一道数学问题,把数学层面的问题解决了,代码很好写;

题意:给n个元素的集合,求出所有子集的元素的和。

二、题目分析

思考一下:对于所有长度为m的子集而言,任意一个元素出现的次数和是相等的,比如,m为1时(即子集长度为1),每个元素只出现一次;

因此可以分析任意一个元素在所有子集中出现的次数,假设集合{a1, a2, ..., an+1}有【n+1】个元素,分析如下:

子集大小为1的集合:假设必选a1, 那么因为子集大小只有1,所以其他【n】个元素选【0】个即可,即元素a1在子集大小为【1】的集合中,出现了C\binom{0}{n}次;

子集大小为2的集合:假设必选a1, 那么在剩余的【n】个元素中可以再选【1】个即可,即元素a1在子集大小为【2】的集合中,出现了C\binom{1}{n}次;

同理可以得出:

子集大小为m(m<=n+1)的集合:假设必选a1, 那么在剩余的【n】个元素中可以再选【m-1】个元素即可,即元素a1在子集大小为【m】的集合中,出现了C\binom{m-1}{n}次;

......

通过以上的推论,可以得出任意一个元素在所有子集中出现的次数为

C\binom{0}{n} + C\binom{1}{n} + C\binom{2}{n} + ... + C\binom{n}{n}

这个答案等于多少呢?想想二项式公式:

(x+y)^{n} = C\binom{0}{n}x^{n}y^{0} + C\binom{1}{n}x^{n-1}y^{1} + C\binom{2}{n}x^{n-2}y^{2} + ... C\binom{n}{n}x^{0}y^{n}

这个公式大家应该很熟悉,令x=1且y=1,公式左边为2^{n},公式右边为:

C\binom{0}{n} + C\binom{1}{n} + C\binom{2}{n} + ... + C\binom{n}{n}

因此可以得到:

C\binom{0}{n} + C\binom{1}{n} + C\binom{2}{n} + ... + C\binom{n}{n}=2^{n}

有了上面的推导就很方便了,可以知道大小为【n+1】的集合的所有子集中,每个元素出现的总次数和为2^{n},那么类推集合大小为【n】的集合的所有子集中,每个元素出现的次数和为2^{n-1},所以本题只需要求出所有元素的和,再乘以每个元素出现的次数2^{n-1}即可

三、AC code

#include "bits/stdc++.h"
using namespace std;
typedef unsigned long long ull;
/**
 * 本题由于最终答案在10^18,在long long 范围内且没有负数,因此统一开unsigned long long
 **/
ull n = 0, sum = 0, x;
int main(){
	while(cin >> x) {
		sum += x;   // sum为所有元素的和
		n++;   // 由于本题没有告诉元素个数,因此需要自己统计元素个数
	}
	ull t = 1;  // 这里先定义类型为ull的t等于1,而没有直接使用1<<(n-1),也是考虑用ull, 而不是int,如果直接写1<<(n-1),结果为int
	cout << sum * (t<<(n-1));  // t<<(n-1)等价于2^(n-1)次数,位运算更快一些。
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/331805.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年【建筑电工(建筑特殊工种)】考试报名及建筑电工(建筑特殊工种)免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 建筑电工(建筑特殊工种)考试报名是安全生产模拟考试一点通总题库中生成的一套建筑电工(建筑特殊工种)免费试题&#xff0c;安全生产模拟考试一点通上建筑电工(建筑特殊工种)作业手机同步练习。2024年【建筑电工(建筑特…

189.轮转数组(数组翻转,C解法)

题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转…

C++--默认参数

一.默认参数&#x1f357; C中允许函数提供默认参数&#xff0c;也就是允许在函数的声明或定义时给⼀个或多个参数指定默认值。在调 ⽤具有默认参数的函数时&#xff0c;如果没有提供实际参数&#xff0c;C将⾃动把默认参数作为相应参数的值。 二.使用规则&#x1f357; 1.如果…

Java中List接口两个实现,ArrayList类和LinkedList类的常用方法(一)

List接口 要了解List接口&#xff0c;就不得不说起Java的集合框架。 &#xff08;该图来自菜鸟教程&#xff09; Collection接口和Map接口 Java 集合框架主要包括两种类型的容器&#xff0c;集合Collection和图Map。 Collection接口代表了单列集合&#xff0c;它包含了一组…

恭喜所有纺织人,你最想要的小程序来了

随着互联网的普及和电子商务的快速发展&#xff0c;越来越多的商家开始涉足线上销售。而小程序商城作为一种轻量级的应用程序&#xff0c;正逐渐成为商家们热衷选择的销售平台。本文将通过实用指南的形式&#xff0c;为商家们详细介绍如何通过乔拓云网后台&#xff0c;自助搭建…

Mybatis面试题(二)

MyBatis 面试题 11、Mybatis是如何将sql执行结果封装为目标对象并返回的&#xff1f;都有哪些映射形式&#xff1f; 第一种是使用标签&#xff0c;逐一定义数据库列名和对象属性名之间的映射关系。 第二种是使用 sql 列的别名功能&#xff0c;将列的别名书写为对象属性名。 …

.NET架构师:全网最全“权限系统”设计剖析

&#x1f3c6;作者&#xff1a;科技、互联网行业优质创作者 &#x1f3c6;专注领域&#xff1a;.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 &#x1f3c6;欢迎关注我&#xff08;Net数字智慧化基地&#xff09;&#xff0c;里面…

品鉴威士忌:威士忌酿造发酵,糖类到酒精的转变

威士忌&#xff0c;这一源自苏格兰的特别蒸馏酒&#xff0c;以其丰富的味蕾和特别的风味吸引了无数品鉴者。在威士忌的酿造过程中&#xff0c;发酵是从糖类物质转化为酒精的重要环节。本文将带您深入了解威士忌发酵的过程&#xff0c;以及如何捕捉那些难以言喻的美妙味蕾感受。…

Seaborn可视化的各种图及代码演示

一.简介 Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面&#xff0c;便于用户能够做出各种有吸引力的统计图表。 Seaborn是在matplotlib的基础上进行了更高级的API封装&#xff0c;从而使得作图更加容易&#xff0c;在大多数情况下使用seaborn能做…

FFmpeg之AVFilter

文章目录 一、概述二、重要结构体2.1、AVFilterGraph2.2、AVFilter2.3、AVFilterContext 三、流程梳理3.1、FFmpeg AVFilter 使用整体流程3.2、过滤器构建流程3.2.1、分配AVFilterGraph3.2.2、创建过滤器源3.2.3、创建接收过滤器3.2.4、生成源和接收过滤器的输入输出3.2.5、通过…

GMT学习记录

我主要根据GMT中文手册一步一步学习的&#xff01;&#xff01;&#xff01;&#xff01;B站视频介绍的是5.0老版本仅仅建立基础理解这个软件。 好的&#xff0c;学了一点发现直接把gmt转为shp&#xff0c;就得到我想的文件 gmt数据转shape格式数据 - 简书 (jianshu.com) 命…

算法刷题——删除排序链表中的重复元素(力扣)

文章目录 题目描述我的解法思路结果分析 官方题解分析 查漏补缺更新日期参考来源 题目描述 传送门 删除排序链表中的重复元素&#xff1a;给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&…

细说JavaScript BOM之HTML5新特性

1、applicationCache对象 什么是Application Cache呢&#xff1f;HTML5引入了应用程序缓存技术&#xff0c;意味着Web应用可进行缓存&#xff0c;并在没有网络的情况下使用&#xff0c;通过创建cache manifest文件&#xff0c;可以轻松的创建离线应用。 Application Cache带来…

数字创意市场:Web3时代创作者的新机遇

随着Web3时代的崭露头角&#xff0c;数字创意市场正迎来全新的变革和机遇。在这个数字化的时代&#xff0c;创作者们将面对更加开放、去中心化的创作和交易环境。本文将深入探讨Web3时代数字创意市场为创作者带来的新机遇&#xff0c;以及这个时代为创意产业带来的变革。 创作者…

2024 Move 开发者大会精彩回顾|共赴 Move 生态的无限未来

2024 年的 Move 开发者大会是 Move 生态的一场大型的线下盛事。Move 的优异特性、Move 的高光发展、Move 的未来潜力……无不引领着开发者、投资人等一众业内人士加入建设可持续的 Move 生态世界。 在去中心化、安全性和可扩展性等 Web3 关键议题不断涌现之时&#xff0c;Move …

YOLOv5全网独家首发:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测实现暴力涨点

💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,完美和YOLOv5结合,助力涨点 DCNv4优势:(1) 去除空间聚合中的softmax归一化,以增强其动态性和表达能力;(2) 优化存储器访问以最小化冗余操作以加速。这些改进显著加快了收敛速度,并大幅提高了处理速度,DCN…

python数字图像处理基础(七)——直方图均衡化、傅里叶变换

目录 直方图均衡化均衡化原理均衡化效果标准直方图均衡化自适应直方图均衡化 傅里叶变换原理低通滤波高通滤波 直方图均衡化 均衡化原理 图像均衡化是一种基本的图像处理技术&#xff0c;通过更新图像直方图的像素强度分布来调整图像的全局对比度。这样做可以使低对比度的区域…

新品上市如何做好内容营销?

当新品上市面向用户销售时&#xff0c;其中的关键环节就是内容营销&#xff0c;只要有一套完整的内容营销策略&#xff0c;那在新品上市时就可以取得不错的成绩&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;新产品上市如何做好内容营销。 一、 结合不同层次需求 1.用…

Mac系统数据占用太多怎么清理 mac怎么清除下载的软件

在我们使用MacBook电脑的过程中&#xff0c;经常会遇到一个常见的问题&#xff0c;那就是储存空间不足。当我们的硬盘空间被占满的时候&#xff0c;系统的运行速度可能会变得缓慢&#xff0c;并且我们无法保存新的文件或者安装新的应用程序。要解决这个问题&#xff0c;清理缓存…

react native Gradle的原国外地址、本地下载、国内阿里腾讯镜像三种下载配置

一、国外地址&#xff1a;&#xff08;初始项目默认&#xff09; 下载地址&#xff1a;https://services.gradle.org/distributions/ 文件地址见下图&#xff1a; 注意&#xff1a;这个地址下载十次就有九次是连接超时&#xff0c;建议换另外两种方法 二、下载到本地&#x…