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

输入输出格式

输入格式:

集合中的元素(元素<=1000)

输出格式:

输入输出样例

输入样例#1:

2 3
输出样例#1:

10

说明

子集为:

[] [2] [3] [2 3] 2+3+2+3=10

保证结果在10^18以内。

【分析】非常容易推导出,每个元素在集合中总共出现了2^(n-1)(n指集合中元素的个数)次,以样例为例:

可以很容易的发现每个元素在集合中都各出现了2^(2-1) = 2次。如此,我们得到一个公式:

设元素个数为n,所有元素之和为sum,自己之和为ans,则:

ans = sum * 2^(n-1)。

完整的数学证明不方便给出,大家只要记住此公式即可。

【代码】:

#include<bits/stdc++.h>

using namespace std;
long long sum,a,ans,cnt;
int main()
{
while(cin>>a)
{
sum+=a;
cnt++;
}
ans+=pow(,cnt-);
cout<<ans*sum;
return ;
}

最新文章

  1. JS for循环 闭包
  2. LPTHW 笨办法学python 37章 python关键字/关键词介绍
  3. 常见HTTP状态码(200、301、302、500等)
  4. Qt窗口添加鼠标移动拖拽事件
  5. 在windows 下安装启动redis
  6. [ActionScript 3.0] AS3.0 Socket通信实例
  7. LoRaWAN协议(一)--架构解析
  8. ASP.NET WebAPI 12 Action的执行
  9. mysql常用脚本
  10. C++拾遗(二)关于变量
  11. POJ 3892 RSA Factorization
  12. 由自动装箱和拆箱引发我看Integer源码
  13. 样式的操作-访问外部定义的css样式
  14. appendChild方法详解
  15. IdentityServer4(9)- 使用OpenID Connect添加用户身份验证(implicit)
  16. 我是如何解决java.security.cert.CertPathValidatorException异常的
  17. day5 笔记
  18. 工作随笔——Java网络代理(http,socks)
  19. 如何弹出QQ临时对话框实现不添加好友在线交谈效果
  20. vue-resource使用笔记

热门文章

  1. 正式进军Matlab图像处理
  2. Powershell使用真实的对象工作
  3. 【题解】SDOI2014旅行
  4. 如何在数据访问层上提高js的执行效率
  5. Codeforces Round #526 (Div. 2) E. The Fair Nut and Strings
  6. 自定义toolbar教程
  7. spring中PropertyPlaceholderConfigurer的运用---使用${property-name}取值
  8. is
  9. spring结合Mybatis的框架搭建(一)
  10. Spring - IoC(3): Bean 实例的创建方式