标签:which some logs must ide regional lazy href field
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5456 Accepted Submission(s): 2031
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=5*1e5+5; long long n; long long a[maxn],a1[maxn],a2[maxn],b1[maxn],b2[maxn],c[maxn]; long long lowbit(long long x) { return x&(-x); } void update(long long x,long long value) { for(;x<=maxn;x+=lowbit(x)) { c[x] += value; } } long long getsum(long long x) { long long sum=0; for(;x>0;x-=x&(-x)) sum += c[x]; return sum; } int main() { int i,t; scanf("%d",&t); while(t--) { scanf("%lld",&n); memset(c,0,sizeof(c)); for(i=1;i<=n;i++) { scanf("%lld",&a[i]); update(a[i],1); a1[i] = getsum(a[i]-1);//小 a2[i] = i-a1[i]-1;//大 //printf("a1[%d]--%d a2[%d]--%d\n",i,a1[i],i,a2[i]); } memset(c,0,sizeof(c)); for(i=n;i>0;i--) { update(a[i],1); b1[i] = getsum(a[i]-1);//小 b2[i] = n-i-b1[i];//大 //printf("b1[%d]--%d b2[%d]--%d\n",i,b1[i],i,b2[i]); } long long ans = 0; for(i=1;i<=n;i++) { ans += a1[i]*b2[i]+a2[i]*b1[i]; } printf("%lld\n",ans); } }
标签:which some logs must ide regional lazy href field
原文地址:http://www.cnblogs.com/WWkkk/p/7375026.html