洛谷 P2415 集合求和【数学公式/模拟】
2024-08-27 11:29:48
给定一个集合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 ;
}
最新文章
- JS for循环 闭包
- LPTHW 笨办法学python 37章 python关键字/关键词介绍
- 常见HTTP状态码(200、301、302、500等)
- Qt窗口添加鼠标移动拖拽事件
- 在windows 下安装启动redis
- [ActionScript 3.0] AS3.0 Socket通信实例
- LoRaWAN协议(一)--架构解析
- ASP.NET WebAPI 12 Action的执行
- mysql常用脚本
- C++拾遗(二)关于变量
- POJ 3892 RSA Factorization
- 由自动装箱和拆箱引发我看Integer源码
- 样式的操作-访问外部定义的css样式
- appendChild方法详解
- IdentityServer4(9)- 使用OpenID Connect添加用户身份验证(implicit)
- 我是如何解决java.security.cert.CertPathValidatorException异常的
- day5 笔记
- 工作随笔——Java网络代理(http,socks)
- 如何弹出QQ临时对话框实现不添加好友在线交谈效果
- vue-resource使用笔记
热门文章
- 正式进军Matlab图像处理
- Powershell使用真实的对象工作
- 【题解】SDOI2014旅行
- 如何在数据访问层上提高js的执行效率
- Codeforces Round #526 (Div. 2) E. The Fair Nut and Strings
- 自定义toolbar教程
- spring中PropertyPlaceholderConfigurer的运用---使用${property-name}取值
- is
- spring结合Mybatis的框架搭建(一)
- Spring - IoC(3): Bean 实例的创建方式