首页 > 其他分享 >洛谷题单指南-分治与倍增-P2415 集合求和

洛谷题单指南-分治与倍增-P2415 集合求和

时间:2024-09-15 12:02:09浏览次数:1  
标签:cnt P2415 洛谷题 sum 元素 子集 集合 倍增

原题链接:https://www.luogu.com.cn/problem/P2415

题意解读:计算集合所有子集中元素之和。

解题思路:

集合的特性:互异性,元素各不相同

来看样例:2 3,可以组成的子集有

2

3

2 3

2和3都出现2次

再比如:1 2 3,可以组成的子集有

1

2

3

1 2 

1 3

2 3

1 2 3

1,2,3各出现4次

由于在集合中选0~n个元素,每个元素的机会都是均等的,可以断定所有子集中各元素出现次数一定相等。

对于n个元素的集合,所有子集中元素个数之和为:

C(n,0) * 0 + C(n,1) * 1 + C(n,2) * 2 + ... + C(n,n) * n = n * 2^(n-1)

以上等式是根据二项式定理推导出的恒等式,如果不了解,也可以直接对左边组合数求值,根据

C(n,m) = C(n-1,m) + C(n-1,m-1)进行递推求组合数即可

用子集元素个数除以n即得到每个数出现的次数:2^(n-1)

100分代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int sum = 0, cnt = 0, x;
    while(cin >> x) sum += x, cnt++;
    long long ans = sum * pow(2, cnt - 1);
    cout << ans;
    return 0;
}

 

标签:cnt,P2415,洛谷题,sum,元素,子集,集合,倍增
From: https://www.cnblogs.com/jcwy/p/18415126

相关文章

  • 洛谷题单指南-分治与倍增-P7167 [eJOI2020 Day1] Fountain
    原题链接:https://www.luogu.com.cn/problem/P7167题意解读:从喷泉任意一个圆盘倒水,水流经的圆盘直径必须递增,水最后流到哪个圆盘。解题思路:1、枚举法有30%的数据范围在N<=1000,Q<=1000,因此枚举也可以得到30分。可以通过单调栈预计算每个圆盘后面第一个直径更大的圆盘位置Next[......
  • Cursor:倍增工作效率的编程工具
    哪个编程工具让你的工作效率翻倍?在现代开发中,选择一个合适的编程工具能够显著提升工作效率。Cursor编译器以其简洁的界面、智能化的代码功能和灵活的插件系统,帮助开发者更高效地编写、检查和优化代码。本文将详细介绍Cursor的功能特点、使用场景,特别是它如何通过人工智......
  • 洛谷题单指南-分治与倍增-P1226 【模板】快速幂
    原题链接:https://www.luogu.com.cn/problem/P1226题意解读:快速幂模版题。解题思路:1、分治法要计算a^b,可以对b分情况讨论:如果b是偶数,即b=2t,a^b=a^t*a^t如果b是奇数,即b=2t+1,a^b=a*a^t*a^t很容易用递归实现100分代码:#include<bits/stdc++.h>usingnamespa......
  • 洛谷题单指南-分治与倍增-P1966 [NOIP2013 提高组] 火柴排队
    原题链接:https://www.luogu.com.cn/problem/P1966题意解读:计算两个序列∑(ai​−bi​)^2的最小值,对10^8-3取模。解题思路:1、贪心思路要使得两个序列对应位置元素之差的平方和最小,必须满足两个序列相对排序是一致的,什么意思?设a序列有两个元素:a1,a2,b序列有两个元素b1,b2当a1<a2,b......
  • 2024 牛客多校第三场(倍增,贪心)
    2024牛客多校第三场(倍增,贪心)J-RiggedGames题面:给出一个\(01\)字符串\(s\),代表小局比赛的输赢。求大局Bo(\(2b-1\)),小局Bo(\(2a-1\))的结果。求出\(s\)的每一个位置出发的输赢结果。数据范围:\(n,a,b\;(1≤n,a,b≤1e5)\)我和正解的思考相同的部分......
  • 洛谷题单指南-分治与倍增-P1908 逆序对
    原题链接:https://www.luogu.com.cn/problem/P1908题意解读:求序列逆序对数。解题思路:1、暴力法对于每一个数,寻找后面有多少数比其小,或者采用冒泡排序,交换的次数即逆序对的个数,复杂度为O(n^2)2、归并排序法在归并排序过程中,会进行有序序列的合并,设两部分连续的有序序列为a[s1,......
  • 洛谷题单指南-分治与倍增-P1177 【模板】归并排序
    原题链接:https://www.luogu.com.cn/problem/P1177题意解读:归并排序模版题。解题思路:第一步:确定分界点。mid=(l+r)/2第二步:排序。对左右两边递归排序第三步:归并。合并左右两边排序好的内容关键在第三步:通过双指针对两个有序数组进行合并100分代码:#include<bits/std......
  • 洛谷题单指南-常见优化技巧-P1714 切蛋糕
    原题链接:https://www.luogu.com.cn/problem/P1714题意解读:求长度不超过m的最大子段和解题思路:1、暴力法设a[N]表示原数组,s[N]是a[N]的前缀和,对于每一个元素s[i],计算其与前m个元素之差,取差值最大值,用代码表示:for(inti=1;i<=n;i++){for(intj=i-1;j>=i-m......
  • 洛谷题单指南-常见优化技巧-P2880 [USACO07JAN] Balanced Lineup G
    原题链接:https://www.luogu.com.cn/problem/P2880题意解读:在若干个不定长区间里,求区间最大值与最小值之差解题思路:对于区间求最值,通常有几种方式:1、暴力法,通过枚举所有的区间来计算区间最值2、单调队列,针对区间长度固定的情况3、ST表,针对区间长度不固定且元素不会发生改变的......
  • 洛谷题单指南-常见优化技巧-P1886 滑动窗口 /【模板】单调队列
    原题链接:https://www.luogu.com.cn/problem/P1886题意解读:单调队列模版题。解题思路:采用双端队列维护单调的序列,单调队列三部曲:1、去头,当窗口内元素个数超过k,队头出队2、去尾,当要加入的元素会破坏单调性,队尾出队3、入队,将元素的下标存入队列每一次入队后,队头元素即为窗口最......