Sequence(组合数学,集合不同元素的个数)
Sequence [组合数学]
时间限制: 3 Sec 内存限制: 128 MB 提交: 138 解决: 52 [提交][状态][讨论版]
题目描述
在某个夜黑月高的晚上,!!!,原谅我编不下去了。
HS(Handsome)的Ocean在纸上写下$N$个整数,Ocean把它定义为$O$序列。
Ocean认为一个序列的价值的是:序列中不同元素个数。
现在他想知道$O$序列中所有子序列的价值之和。
比如说:序列$(1, 1, 2, 2)$价值为$2$,因为序列中有$1$和$2$两个不同元素。 比如序列$(1, 1, 1)$,共有$7$个子序列,$(1)、(1)、(1)、(1, 1)、(1, 1)、(1, 1)、(1, 1, 1)。$价值之和为$7$。
输入
注:$1 <= T <= 10000,1 <= N <= 50,1 <= a_i <= 10。$
输出
样例输入
4 3 1 1 1 4 1 1 1 1 4 10 10 10 8 20 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
样例输出
7 15 22 7864320
来源
CZY
思路:每个元素提供的价值是2^k - 1,k是这个元素出现的次数;那么我们根据元素值来解决问题,假设我们选的是5和7,
现在有一组 5 5 5 7 7 7 7,那么选的这两个数提供的价值就是V5 * V7;
那么我们现在只需要找出元素值的全排列的选择即可,这个可以用位运算;
代码:(注意java里面跟c有点不一样,要想是java形式,要是1L<<k)
import java.util.Scanner;public class hpu1192 {static private Scanner cin;static{cin = new Scanner(System.in);}public static void main(String[] args) { // System.out.println((long)(1L << 50));int T, N, temp;int[] a = new int[11];T = cin.nextInt();while(T-- > 0){N = cin.nextInt();for(int i = 0; i <= 10; i++){a[i] = 0;}for(int i = 0; i < N; i++){temp = cin.nextInt();a[temp]++;}long ans = 0;for(int i = 1; i < (1 << 10); i++){int cnt = 0;long sum = 1;for(int j = 0; j < 10; j++){if((i & (1 << j)) != 0){cnt++;sum *= (long)((1L << a[j + 1]) - 1);}}ans += (long)sum * cnt;}System.out.println(ans);}} }
Sequence(组合数学,集合不同元素的个数)相关推荐
- 输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素。
[问题描述]输入两个由整型数构成的集合(元素个数均为5)分别放到数组A和B中,求这两个集合的交集(交集的元素由两个集合中的相同元素构成),最后输出交集中的元素,要求在主函数中输入A和B数组,并输出交集 ...
- 离散数学反对称关系_【离散数学】1.2&1.3集合与元素,集合与集合之间的关系...
离散数学是编程人员进阶的必修科目,是计算机专业学生的基础课程之一,多为理论性知识,较抽象. [离散数学]第一章(集合论基础)的小节主要有: 1.1集合的定义和表示 1.2集合与元素的关系 1.3集合与 ...
- python简单小案例列表_python计算列表内各元素的个数实例
python计算列表内各元素的个数实例 如下所示: list = [1,2,3,4,5,6,7,5,4,3,2,12] set = set(list) dict = {} for item in se ...
- python统计excel出现次数_Excel-统计元素出现次数和统计不重复元素的个数
在实际工作中,我们经常遇到这样的情况,给你一个几千条几万条记录的表格,让你统计每个元素出现的次数,或者是让你统计一下总计有多少个不重复的元素.现在来简单介绍一下怎么处理这个问题,方法学了一次,就可以使 ...
- Excel-统计元素出现次数和统计不重复元素的个数
在实际工作中,我们经常遇到这样的情况,给你一个几千条几万条记录的表格,让你统计每个元素出现的次数,或者是让你统计一下总计有多少个不重复的元素.现在来简单介绍一下怎么处理这个问题,方法学了一次,就可以使 ...
- Java创建数组的三种方式 (以及length方法是否能获取数组中元素的个数)
Java创建数组的三种方法 import java.util.Arrays; public class Sum { public static void main(String[] args){ in ...
- python集合的元素可以是_python集合入门须知
刚接触Python编程语言的时候,会觉得怎么那么多概念要记,也会觉得很难学.下面是关于python集合的相关概念,希望能帮助你在学习python语言时,更上一层楼. 一.集合概述 集合(set):把不 ...
- python中集合的元素可以是任意数据类型_详解Python集合数据类型
本篇介绍Python集合数据类型.集合不同于列表和元组类型,集合存储的元素是无序且不能重复的,同数学中的集合一样,集合可以执行集合的并.交.差运算.通过本篇的学习,可以达成如下目标. ● 掌握集合数据 ...
- python实现二维tensor对应列相同元素的个数
python实现二维tensor对应列相同元素的个数 例子: t1 = torch.tensor([[1,3,5],[2,4,6]] t2 = torch.tensor([[2,3,5],[2,3,6 ...
最新文章
- 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题
- R语言相关关系可视化函数梳理(附代码)
- [caffe(一)]使用caffe训练mnist数据集
- 工作所用的模块回滚脚本
- Java笔记-基于Spring Boot的SOAP双向SSL认证及WS-Security
- 【JVM】JVM 内联优化
- ios 横竖屏切换总结
- 斯坦福大学的Gss Audio Codec 调试分析
- cognos数据源的配置
- android字体和可免费商用的字体
- 斗鱼弹幕服务器未响应,斗鱼看不到弹幕的解决方法步骤
- 气球java游戏,游戏 | 最适合春季玩气球的这12种玩法你玩过吗?
- 无线Wifi密码之暴力破解篇(WPA)
- 量化基金投资之Alpha策略简介
- 如何批量将 Txt 文本文件转换为 jpeg、png、bmp 图片
- 在Activity中获取另一个XML文件的控件
- java飞机大战设计收获_飞机大战编写以及Java的面向对象总结
- 几年前之所预言,其人不死言之依然
- sublime配置python开发环境以及遇到的坑(附终极解决方案)
- 对接阿里云opensearch