南邮 OJ 2068 爱魔法的露露

来源:互联网 发布:运输算法 编辑:程序博客网 时间:2024/04/19 21:06

爱魔法的露露

时间限制(普通/Java) : 1200 MS/ 4000 MS          运行内存限制 : 65536 KByte
总提交 : 175            测试通过 : 21 

比赛描述

    仙灵女巫露露,对于魔法的热忱可是超出常人,要是发现了什么上古遗留下的魔法,她总是想方设法地获得,然后研究分析。而最近,他又从邪恶小法师维嘉那里获得了一个“奇怪”的魔法卷轴;

    这个魔法卷轴上有一大串数字,而且根据卷轴上的描述,这个魔法的威力指数来自于这一串数字中“魔法区间”的数量;

    所谓“魔法区间”指的是一段连续的闭区间,且这段区间上的所有数字均不相同;

    现在,露露想知道这个魔法的威力指数,你能帮帮她么?



输入

先输入一个正整数T,表示样例个数,1T10。

对于每一个样例,先输入一个正整数n,表示卷轴上的数字个数(1n106);

再输入n个整数,第i个数ai,表示卷轴上第i个数(0ai106)。

输出

对于每个样例,输出一个正整数,即威力指数。

题目保证结果在int范围内。

样例输入

1
3
1 2 3

样例输出

6

提示

  1. 读入数据请使用 scanf();

  2. 对于样例,共有{1},{2},{3},{1,2},{2,3},{1,2,3},6个魔法区间,所以威力为6。

题目来源

yuman




#include<iostream>#define MAX_N 1000001int a[MAX_N];bool visited[MAX_N];int main(){int t,n,i,count,begin,end;scanf("%d",&t);while(t--){count = 0;memset(visited,0,sizeof(visited));scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",a+i);}begin=end=0;while(begin!=n){while(end!=n && !visited[a[end]]){visited[a[end]] = 1;end++;}count += end-begin;visited[a[begin]] = 0;begin++;}printf("%d\n",count);}}


0 0
原创粉丝点击