洛谷:集合求和(P2415)

    技术2022-07-10  149

    给定一个集合s(集合元素数量<=30),求出此集合所有子集元素之和。 输入格式 集合中的元素(元素<=1000) 输出格式 和 输入输出样例 输入 2 3 输出 10 说明/提示 子集为: [] [2] [3] [2 3] 2+3+2+3=10 保证结果在10^18以内。

    #include<bits/stdc++.h> using namespace std; int main(){ int a[30]; int count=0; long long sum=0; //数据可达10^18,用longlong while(cin>>a[count++]){ sum+=a[count-1]; } sum*=pow(2,count-2); //可以证明,子集元素之和=每个元素之和*2^(元素个数-1) cout<<sum; //system("pause"); return 0; }
    Processed: 0.010, SQL: 9