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 阅读(153) 评论(0) 编辑 收藏 举报