欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > P2415集合求和 题解

P2415集合求和 题解

2025/12/14 12:02:26 来源:https://blog.csdn.net/2302_80454737/article/details/147669628  浏览:    关键词:P2415集合求和 题解

P2415 集合求和

题解

公式推导:

设集合有 n 个元素,记为 a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,,an

每个子集要么包含某个元素,要么不包含。

我们固定某个元素 a k a_k ak,再从剩下的 n − 1 n - 1 n1 个元素中任选若干组成子集。

所以包含 a k a_k ak 的子集个数 = 从 n − 1 n - 1 n1 个元素中选任意个数的方式总和:

∑ i = 0 n − 1 ( n − 1 i ) = 2 n − 1 \sum_{i=0}^{n-1} \binom{n-1}{i} = 2^{n-1} i=0n1(in1)=2n1

即:每个元素在所有子集中恰好出现 2 n − 1 2^{n-1} 2n1 次。


因此:

所有子集的元素和 = ( a 1 + a 2 + ⋯ + a n ) × 2 n − 1 \text{所有子集的元素和} = (a_1 + a_2 + \cdots + a_n) \times 2^{n-1} 所有子集的元素和=(a1+a2++an)×2n1

代码

#include<bits/stdc++.h>
using namespace std;long long ans;int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);vector<int> arr;int x;while(cin>>x){arr.push_back(x);}for(int i:arr) ans+=i;ans*=pow(2,arr.size()-1);cout<<ans;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词