P2415 集合求和

P2415 集合求和
显然,一共有2^n个子集,对于其中的一个确定的元素,它不在的集合有2^(n-1),相当于有n-1元素,那么它存在的集合有,2^n-2^(n-1)==2^(n-1),那么集合的和为sum*2^(n-1).

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 long long p(long long t,long long x)
 5 {
 6     while(x%2==0)
 7     {
 8         t*=t;
 9         x>>=1;
10     }
11     long long result=1;
12     while(x>0)
13     {
14         if(x%2==1)
15         {
16             result*=t;
17         }
18         t*=t;
19         x>>=1;
20     }
21     return result;
22 }
23
24 int main()
25 {
26   long long n=0;long long x;
27   long long sum=0;
28   while(scanf("%lld",&x)!=EOF)
29   {
30       sum+=x;
31       n++;
32   }
33    cout<<sum*p(2,n-1);
34   return 0;
35 }
时间: 2024-11-06 14:11:17

P2415 集合求和的相关文章

洛谷 P2415 集合求和 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=2415 题目描述 给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和. 输入输出格式 输入格式: 集合中的元素(元素<=1000) 输出格式: 和 输入输出样例 输入样例#1: 2 3 输出样例#1: 10 说明 子集为: [] [2] [3] [2 3] 2+3+2+3=10 保证结果在10^18以内. 分析: 手写容

[JZOJ P1271] [DP]集合求和

@kaike 传送门 就这么简单的题目,我交了四回? 让你用 1-n 个数看是否能组成等式 可以看出 1-n 明显是一个等差数列 恩 数列题刷的都要吐了不过不难 由求和公式Sn=n*(n+1)/2 组成等式 左边=右边=Sn/2 先判断是否有解 1 s=n*(n+1); 2 if(s%4!=0) 3 { 4 cout<<0<<endl; 5 return 0; 6 } 设边界f[0]=1 如背包问题 我知道这是一个很恶劣的词语,但是具体我还没有悟出来 f[j]=f[j]+f[j-i

集合求和

本题地址:http://www.luogu.org/problem/show?pid=2415 洛谷2015年8月月赛第一题 题目背景 非常抱歉该题数据有误,已更正并进行重测.注意结果范围为10^18 题目描述 给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和. 输入输出格式 输入格式: 集合中的元素(元素<=1000) 输出格式: 和 输入输出样例 输入样例#1: 2 3 输出样例#1: 10 说明 子集为:[][2][3][2 3]2+3+2+3=10保证结果在10^18

sum(iterable[, start]) 对集合求和

>>> LL [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21] >>> L [3, 4, 5, 6, 7, 8, 9] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> >>> >>> sum(L) 42 >>> sum(LL) 121 >>> sum(l) 45 >>> # 以上是求

Clojure学习03:数据结构(集合)

Clojure提供了几种强大的数据结构(集合) 一.集合种类 1.vector 相当于数组,如: [2  3   5]  ,  ["ad"  "adas"  "adadsads"] 2.list 相当于链表,如: '(2  3   5)  ,  '("ad"  "adas"  "adadsads") 与vector相比,[]变成了() ,又因为 ()符号是用于函数调用,为了区别,需要在

从零学scala(七)集合、模式匹配和样例类

一:集合 主要的集合特质 scala集合中重要的特质: Trait(Iterable) Trait(Seq) Trait(Set) Trait(Map) Trait(IndexedSeq) Trait(SoredSet) Trait(SoredMap) Seq是一个有先后次序的值的序列,比如数组和列表.IndexSeq允许我们通过下表快速访问元素,ArrayBuffer是带下标的,但是链表不是. Set是一个没有先后次序的值的序列,SortedSet中,元素以排过序的顺序被访问. Map是一组(

python基础之函数

python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数式编程和面向过程编程的区别: 函数式:将某功能代码封装到函数中,日后便无需重复编

自学Python-内置函数详解

一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii 一.数学运算类 abs(x) 求绝对值1.参数可以是整型,也可以是复数2.若参数是负数,则返回负数的模 complex([real[, imag]]) 创建一个复数 divmod(a, b) 分别取商和余数注意:整型.浮点型都可以 float([x]) 将一个字符串或数转换为浮点数.如果无参数将返

进击的Python【第四章】:Python的高级应用(一)

Python的高级应用(一) 本章内容: 内置函数 生成器 迭代器 装饰器 JSON和PICKLE的简单用法 软件目录结构规范 一.内置函数 1.数学运算类 abs(x) 求绝对值1.参数可以是整型,也可以是复数2.若参数是复数,则返回复数的模 complex([real[, imag]]) 创建一个复数 divmod(a, b) 分别取商和余数注意:整型.浮点型都可以 float([x]) 将一个字符串或数转换为浮点数.如果无参数将返回0.0 int([x[, base]])  将一个字符转换