链接:https://ac.nowcoder.com/acm/contest/13504/I 来源:牛客网

众所周知,一个序列拥有许多非空子序列。

所谓子序列就是在原序列中任意删除 0 个或多个元素,然后保持剩下元素的顺序不变所形成的序列。非空子序列集意味着剩下的子序列不能为空。

比如对于序列[1, 2, 3],它的所有非空子序列为:[1, 2, 3],[1, 2],[1, 3],[2,
3],[1],[2],[3]。再比如序列 [1, 1],它的非空子序列有:[1, 1],[1] (删除了第一个 1),[1]
(删除了第二个1) 。

现在母牛哥手里有一个长度为 n
的正整数序列,他现在要为这个序列的所有非空子序列打分。对于一个序列而言,它的评分标准为序列里所有数的乘积(只有一个数的序列,分数就是这个数)。

母牛哥想要知道所有分数的和,但由于结果太大了,所以你只要告诉母牛哥结果对 1000000007 取模即可。

数学结论
定义“集合的乘积”为集合中所有元素的乘积,集合中所有子集的“集合的乘积”之和Sum
Sum = 数组每一项-1的值,n项乘积之和-1
注意对mod取模

结论和推导过程参考:
[https://blog.csdn.net/SCUEC__zhazhahui/article/details/108110714]

AC代码:

#include<iostream>
using namespace std;
#define int long long
const int maxn=1e6+10,mod=1000000007;
int arr[maxn];
signed main()
{int n;cin>>n;for(int i=1;i<=n;i++){cin>>arr[i];}int ans=1;for(int i=1;i<=n;i++){ans= (ans%mod *(arr[i]+1)%mod)%mod;}cout<<(ans-1+mod)%mod<<endl;
}

I - 母牛哥与子序列 所有非空子集的乘积之和 数学结论题相关推荐

  1. 教你如何求一个集合的所有非空子集的方差和

    /题目: 注:要求提交程序源代码和执行结果,编程语言不限. 1.对于一个大小为n的数集,求出该数集的每个"非空子集"的方差之和对10°+7取模的结果. 附件1说明:第一行一个正整数 ...

  2. 698. 划分为k个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。

    题目描述 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k ...

  3. java打印数组的连续非空子集_Apriori算法求数组的非空子集java代码

    Apriori算法求集合的非空子集java代码 public class Test { public static void main(String[] args) { String str=&quo ...

  4. 【算法】求非空子集的三种思路

    一.题目: 简化:编写一个方法,返回int数组的所有非空子集. (有n个元素的集合的子集个数:2^n - 1) 二.思路及代码 思路一:递归 对每个元素,都可以选择进入或者不进入子集. 因此,求n个元 ...

  5. 求集合中的非空子集 Java

    字符串的非空子集 import java.util.*; public class _非空子集 {public static List<String> sList = new ArrayL ...

  6. 非空子集的生成(二进制法)

    假如有一个n个元素的集合,那么它的非空子集有2的次方-1个,而一个n位的二进制数除去0刚好可以表示2的n次方-1种状态.刚好可以建立对应的联系,因此只需要检测二进制数所表示的每一种状态1的位置,把对应 ...

  7. Python---按字典序输出集合的所有非空子集

    Python---按字典序输出集合的所有非空子集 通过使用模拟二进制减法以判断每次选取的具体元素.其中flag[ ]为模拟二进制数,初始化全为1,当flag[0]为0时结束循环.下标为0位不作为选取( ...

  8. 求集合的所有非空子集

    某个集合有n个元素,它的所有子集数(包括空集和自己)为2^n,有两种办法,一种是位图法(任一个元素选取或不选取),另一种办法是递归法: // File name: main.m#include < ...

  9. 动态规划_(dynamic programming)_python_最大子序列(最长公共子序列)(可非连续子序列(several versions))

    文章目录 the theorem the process: pseudocode: summary (from pseudocode to executable code) code(version ...

最新文章

  1. CBNet和DetectoRS:COCO数据集霸榜模型
  2. 如何使用jsp自定义标签 JspTag 使用入门
  3. 【转载】从多项式曲线拟合到模式识别的相关概念
  4. WinCE下的GPIO中断的处理
  5. redis版本_Redis—重要历史版本
  6. Javascript特效:电商商品展示放大镜
  7. eclipse中遇到的小问题
  8. springboot上传文件到resources_SpringBoot进行文件上传(一)
  9. CentOS hping3安装
  10. 拼多多平台API接入文档
  11. 硬件工程师面试常见问题
  12. wlop一张多少钱_小白有个问题,为什么很多人都说 WLOP 的画不够好?
  13. 201819102040张辰飞
  14. 弹弹堂 网页游戏 单机自玩 搭建教程
  15. 初闻“Linux中的cp,mv,rm”
  16. 医药行业大拼杀 小药药、药聚汇、朗致集团医药、同仁堂,模式对比
  17. 与台湾的第一次亲密接触
  18. 在数学建模中微型计算机,“在数学建模中培养学生思维能力的研究”课题研究情况汇报...
  19. 2021-3-29 【PTA】【天梯赛】【25分】
  20. 开学!可怕的日本,无情到令人感到恐惧!

热门文章

  1. winbugs MATLAB,winbugs问题求教:
  2. redis入门到精通(一) - 编译与调试
  3. 第十周项目2——贮存班长信息的学生类
  4. 电影票房爬取到MySQL中_爬取最热电影及票房统计
  5. u盘启动 联想一体机_联想一体机怎么设置U盘启动?
  6. 蓝桥杯 算法练习 数字游戏
  7. 结对开发——返回一个整数数组中最大子数组的和
  8. 基于URL特征的网站结构信息挖掘
  9. c语言中数组arr的表示含义
  10. android studio导入arr文件