码迷,mamicode.com
首页 > 其他好文 > 详细

NBUT 2014 B Beautiful Walls

时间:2014-05-05 11:00:58      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:style   class   ext   color   width   http   

题目链接:http://acm.nbut.edu.cn/Contest/view/id/70/problem/B.xhtml

题意:给出n(n100000bubuko.com,布布扣bubuko.com,布布扣 )个正整数,考虑这个序列的连续的子序列的个数,将含有两个以上相同数字的子序列排除在外,将不同位置的相同序列算作两种,问这样的序列有多少个?为了便于描述,将这种序列称为W序列。

输入格式:每个样例首先输入正整数的个数n,然后是n个正整数,有多组样例

输出所求序列的个数

 

样例输入

5

3 4 5 5 2

3

1 2 3

样例输出

9 6

 

分析:

(1) 对于序列中的每个数a[i],考虑以第 i 个数结尾的W序列的个数。如果记f(i)=max{k|a[k]==a[i],k=1,2,?,i?1}bubuko.com,布布扣bubuko.com,布布扣 ,那么以第 i 个数结尾的所有W序列的起始位置不小于f(i)bubuko.com,布布扣bubuko.com,布布扣

(2) 根据这个性质,如果维护p=max{x|x=f(j),j=1,2,?,i}bubuko.com,布布扣bubuko.com,布布扣 ,那么就可以得到以第 i 个数结尾的所有W序列的个数为i-p+1,这样遍历所有的i=1...n,累加就是所求。

(3) 题目没有给出正整数a[i]的范围,需要离散化一下(O(nlog(n)bubuko.com,布布扣bubuko.com,布布扣 )),总的复杂度O(n+nlog(n))bubuko.com,布布扣bubuko.com,布布扣

NBUT 2014 B Beautiful Walls,布布扣,bubuko.com

NBUT 2014 B Beautiful Walls

标签:style   class   ext   color   width   http   

原文地址:http://www.cnblogs.com/txd0u/p/3707743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!