例如4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a,有些子序列可能是相同的,这里只算做1个,请输出a的不同子序列的数量。由于答案比较大,输出mod 10^9 + 7的结果即可。
Input
第1行:一个数N,表示序列的长度(1 <= N <= 100000)
第2 - N + 1行:序列中的元素(1 <= ai<= 100000)
Output
输出a的不同子序列的数量mod 10^9 + 7。
Sample Input
4
1
2
3
2
Sample Output
13

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
const int mod=1e9+7;
#define rep(i,a,n) for(int i=a;i<=n;i++)
int a[maxn],last[maxn],dp[maxn];//到i时子序列个数
int main(){int n;cin>>n;rep(i,1,n){cin>>a[i];if(!last[a[i]]){dp[i]=(dp[i-1]+dp[i-1]+1)%mod;//dp[1]=1 再构成dp[i-1]个新的子序列 a[i]单独1个新的 }else{dp[i]=(dp[i-1]+dp[i-1]-dp[last[a[i]]-1]+mod)%mod; //[1] 2 3 2 }//i=4 当前扫描的最后位置   假如是新数用全部-当此数为出现的新数时重复出现1 2 不用+1 之前新数算过 last[a[i]]=i;}cout<<dp[n]<<endl; return 0;
}

FZU2129 子序列总数 去重相关推荐

  1. mysql查询数据总数去重_mysql技巧之数据去重并记录总数

    1.使用distinct去重(适合查询整张表的总数) 有多个学校+教师投稿,需要统计出作者的总数 select count(author) as total from files 每个作者都投稿很多, ...

  2. leetcode:491. 递增子序列、17. 电话号码的字母组合、31. 分割回文串、93. 复原 IP 地址(JavaScript)

    文章目录 491. 递增子序列 分析 去重 如何保证递增呢? 17. 电话号码的字母组合 思路: 单层递归逻辑 递归终止条件 完整代码 另一种写法 31. 分割回文串 思路:分析题目本题可分为两步 9 ...

  3. 洛谷P5072 [YNOI2015]盼君勿忘 莫队+unordered_set+毒瘤卡常

    在太阳西斜的这个世界里,置身天上之森.等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去.逐渐消逝的未来.我回来了,纵使日薄西山,即便看不到未来,此时此刻的光辉,盼君勿忘 ...

  4. 动态规划编程面试_面试的前25大动态编程问题

    动态规划编程面试 Dynamic programming is one of the most asked paradigms in any product-based company intervi ...

  5. 力扣第 104 场双周赛 2681. 英雄的力量

    原题链接力扣 题目大意:我开始看成连续子段了,写了个递归程序....... 一个数组任选一个子序列,子序列的力量值=最大值平方*最小值.求所有子序列的力量和. 分析过程:如序列长度为n,子序列总数为2 ...

  6. spark业务开发-聚合(agg)

    spark业务开发-聚合(agg) 项目地址:https://gitee.com/cch-bigdata/spark-process.git 输入数据 name,profession,enroll,s ...

  7. MongoDB 去重(distinct)查询后求总数(count)

    在使用MonoDB 做报表汇总经常的有去重统计总数的需求,在此总结一下实现方式: 1, 直接使用distinct 语句查询, 这种查询会将所有查询出来的数据返回给用户, 然后对查询出来的结果集求总数( ...

  8. 回文子序列_计算回文子序列的总数

    回文子序列 Problem statement: 问题陈述: Given a string str, find total number of possible palindromic sub-seq ...

  9. mysql 合计单条数据_mysql之数据去重并记录总数

    引用: http://blog.sina.com.cn/s/blog_6c9d65a10101bkgk.html http://www.jb51.net/article/39302.htm 1.使用d ...

最新文章

  1. Elgg网站迁移指南
  2. scrum回顾_Scrum和SAFe之间有什么不同
  3. 为什么说比特币的交易属性优于储值属性
  4. framework层和native层实现联网控制(iptable方式)
  5. idea 2019.2 版本更新(最顶部从白色边框变为黑色边框)
  6. 面试题目--MPEG4与H.264的区别
  7. 矩阵A对任意的可逆矩阵p都有Ap=pA,证明A为数量矩阵
  8. 【2017-02-20】C#基础 - 运算符//表格,示例,代码巩固练习
  9. 致NLP学习者,该跟大佬学习做项目了,附资料
  10. 回到顶部JavaScript实现
  11. 夜视模式,多少猥琐相机假汝之名
  12. screentogif 屏幕录制生成gif图片的软件安装过程
  13. Glide 4.x之请求网络图片数据流程解析
  14. 拦截QT关闭窗口的CloseEvent()解析
  15. luogu3426 [POI2005]SZA-Template 后缀树
  16. matlab 数组扩充
  17. WIFI P2P原理深入解析
  18. docker:安装tomcat
  19. 一文读懂无线充电技术(附方案选型及原理分析)
  20. 实习工作经历:代码在本地明明可以跑通,怎么放到服务器上就不行了呢?

热门文章

  1. 邮编查询经纬度_从经纬度查找邮政编码
  2. 八个步骤教你做好会议现场管理
  3. SLAM算法资料收集
  4. [LeetCode] 589. N-ary Tree Preorder Traversal
  5. 【TensorFlow】Keras机器学习基础知识-使用TF.Hub进行文本分类
  6. 深度解析用户画像标签体系构建方法
  7. 使用docker快速安装Oracle11gR2
  8. CSS中的表格2️⃣之合并/拆分单元格以及单元格中在存放表格(跨行或者跨列)
  9. VGG——深度学习必会模型及PyTorch实现
  10. 百度OCR文字识别教程(有demo)