The 12th Zhejiang Provincial Collegiate Programming Contest
Edward has an array A with N integers. He defines the beauty of an array as the summation of all distinct integers in the array. Now Edward wants to know the summation of the beauty of all contiguous subarray of the array A.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
The first line contains an integer N (1 <= N <= 100000), which indicates the size of the array. The next line contains N positive integers separated by spaces. Every integer is no larger than 1000000.
Output
For each case, print the answer in one line.
Sample Input
351 2 3 4 532 3 342 3 3 2
Sample Output
1052138
#include <iostream>#include <stdio.h>#include <string.h>#include <stack>#include <queue>#include <map>#include <set>#include <vector>#include <math.h>#include <algorithm>using namespace std;#define ls 2*i#define rs 2*i+1#define up(i,x,y) for(i=x;i<=y;i++)#define down(i,x,y) for(i=x;i>=y;i--)#define mem(a,x) memset(a,x,sizeof(a))#define w(a) while(a)#define LL long longconst double pi = acos(-1.0);#define Len 1000005#define mod 786433#define exp 1e-5const int INF = 0x3f3f3f3f;LL dp[Len];int hsh[Len];int main(){ int t,n,a; scanf("%d",&t); w(t--) { memset(hsh,0,sizeof(hsh)); scanf("%d",&n); dp[0]=0; for(int i=1;i<=n;i++) { scanf("%d",&a); dp[i]=dp[i-1]+a+(i-1-hsh[a])*a; hsh[a]=i; } LL ans=0; for(int i=1;i<=n;i++) ans+=dp[i]; printf("%lld\n",ans); }}
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow