Accepted
325MS
  8052K
1450Byte
2014-11-13 11:20:40.0

爱魔法的露露

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

描述

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

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

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

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

输入

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

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

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

输出

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

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

样例输入

1
3
1 2 3

样例输出

6

提示

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

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

题目来源

yuman

 
 #include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<string>
#include<iostream>
#include<set>
#define maxi(a,b) (a)>(b)?(a):(b)
#define mini(a,b) (a)<(b)?(a):(b)
#define N 1000005
#define mod 10000
#define ll long long using namespace std; int T;
int tot;
set<int> s;
int a[N];
int n;
int vis[N]; void ini()
{
int i;
tot=;
//s.clear();
scanf("%d",&n);
for(i=;i<=n;i++){
scanf("%d",&a[i]);
}
memset(vis,,sizeof(vis));
} void solve()
{
int i,j;
i=;j=;
for(j=;j<=n;j++){
// if(s.find(a[j])==s.end()){
if(vis[ a[j] ]==){
vis[ a[j] ]++;
}
else{
//j--;
break;
}
}
// tot+=j-i+1;
while(i<=n)
{
//s.erase(a[i]);
vis[ a[i] ]--;
tot+=j-i;
//printf(" i=%d j=%d tot=%d\n",i,j,tot);
i++;
for(;j<=n;j++){
// if(s.find(a[j])==s.end()){
if(vis[ a[j] ]==){
vis[ a[j] ]++;
}
else{
//j--;
break;
}
}
}
} void out()
{
printf("%d\n",tot);
} int main()
{
// freopen("data.in","r",stdin);
scanf("%d",&T);
while(T--)
// while(scanf("%I64d",&n)!=EOF)
{
ini();
solve();
out();
}
return ;
}

最新文章

  1. 编译器开发系列--Ocelot语言6.静态类型检查
  2. ArcGIS10.2.1精简版、ArcGIS_Desktop10_Tutorial、破解文件等下载地址
  3. HotApp
  4. IOS 问题集锦
  5. subroutines of perl
  6. IOS VFL屏幕自适应
  7. Python yield 使用浅析(iterable generator )
  8. 元组的cmp()内建函数
  9. 遍历Map的几种方法
  10. file_get_contents()的另一种使用方法
  11. 【Matlab编程】Matlab让电脑失而复得
  12. Git 常用命令汇总
  13. git的一些常见命令
  14. JavaWeb学习笔记九 过滤器、注解
  15. javascript学习总结一
  16. 序列操作 BZOJ2962 线段树
  17. eclipse部署Tomcat9
  18. vue之简单组件例子
  19. Address already in use: JVM_Bind:80 异常的解决办法
  20. m个小朋友手拉手站成一个圈,从第k个小朋友开始报数,报到n的那个小朋友退到圈外,然后他的下一位重新报“1”。这样继续下去,直到只剩下一个小朋友,求解这个小朋友原来站什么地方。

热门文章

  1. Luogu P5352 Terrible Homework
  2. 解决因为手机设置字体大小导致h5页面在webview中变形的BUG
  3. python基础一 day9 函数升阶(3)
  4. rpn网络结构再分析
  5. Encryption-基础:base64加解密
  6. QT+动手设计一个登陆窗口+布局
  7. Beautiful Soup 4.2.0 doc_tag、Name、Attributes、多值属性
  8. Django REST framework 五种增删改查方法
  9. ACM-ICPC 2018 沈阳赛区网络预赛 K. Supreme Number
  10. 内涵段子爬取及re匹配