Beauty of Array
#include<iostream>
#include<algorithm>
#define maxn 100005
typedef long long ll;
using namespace std;
int ishas[maxn];
int n;
ll add[maxn]; //add[k]表示第k个数输入后新增的和
ll dp[maxn]; //dp[i]表示从1到j的答案
ll w[maxn]; //w[j]表示数上一个j出现的位置
void init()
{
int i;
for(i = 0;i < maxn;i ++)
w[i] = 0;
}
int main(void)
{
int cas,i,j,shu;
cin >> cas;
while(cas --)
{
cin >> n;
dp[0] = 0;
add[0] = 0;
init();
for(i = 1;i <= n;i ++){
cin >> shu;
add[i] = add[i-1] + (i-w[shu]) * shu;
dp[i] = dp[i-1] + add[i];
w[shu] = i;
}
cout << dp[n] << endl;
}
return 0;
}
posted on 2016-03-22 15:23 Tob's_the_top 阅读(156) 评论(0) 收藏 举报
浙公网安备 33010602011771号