ZOJ 3872 Beauty of Array(模拟)

来源:互联网 发布:图表数据区域格式 编辑:程序博客网 时间:2024/06/05 18:39

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3872

题意:求每个连续子序列的和的总和(子序列的和为序列中不重复数字的和)

思路:所有的子序列和(不管重复不重复)减去重复数字所重复的次数

代码:

#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#define LL long longusing namespace std;int b[1000005];int main(){int n,t,i,j,a;LL sum,ans;scanf("%d",&t);while(t--){sum=ans=0;memset(b,0,sizeof(b));scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a);if(b[a])sum-=b[a]*a;sum+=a*i;ans+=sum;b[a]=i;}printf("%lld\n",ans);}return 0;}


0 0
原创粉丝点击