(树状数组) HOJ 2275

Number sequence

My Tags   (Edit)
  Source : SCU Programming Contest 2006 Final
  Time limit : 1 sec   Memory limit : 64 M

Submitted : 1598, Accepted : 432

Given a number sequence which has N element(s), please calculate the number of different collocation for three number Ai, Aj, Ak, which satisfy that Ai < Aj > Ak and i < j < k.

Input

The first line is an integer N (N <= 50000). The second line contains N integer(s): A1, A2, ..., An(0 <= Ai <= 32768).

Output

There is only one number, which is the the number of different collocation.

Sample Input

5
1 2 3 4 1

Sample Output

6

分别统计每个数左边小的,然后在逆序统计一下乘起来就好啊

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
#define N 50010
int n,a[N],c[N],lef[N];
long long ans;
int lowbit(int x)
{
      return x&(-x);
}
void update(int pos,int m)
{
      while(pos<N)
      {
            c[pos]+=m;
            pos+=lowbit(pos);
      }
}
int sum(int x)
{
      int sum=0;
      while(x>0)
      {
            sum+=c[x];
            x-=lowbit(x);
      }
      return sum;
}
int main()
{
      while(scanf("%d",&n)!=EOF)
      {
            for(int i=1;i<=n;i++)
                  scanf("%d",&a[i]);
            ans=0;
            memset(c,0,sizeof(c));
            memset(lef,0,sizeof(lef));
            for(int i=1;i<=n;i++)
            {
                 lef[i]=sum(a[i]-1);
                 update(a[i],1);
            }
            memset(c,0,sizeof(c));
            for(int i=n;i>=1;i--)
            {
                  ans+=lef[i]*sum(a[i]-1);
                  update(a[i],1);
            }
            printf("%lld\n",ans);
      }
      return 0;
}

  

时间: 2024-12-19 17:57:59

(树状数组) HOJ 2275的相关文章

求序列中满足Ai &lt; Aj &gt; Ak and i &lt; j &lt; k的组数 树状数组 HIT 2275 Number sequence

http://acm.hit.edu.cn/hoj/problem/view?id=2275 Number sequence   Source : SCU Programming Contest 2006 Final   Time limit : 1 sec   Memory limit : 64 M Submitted : 1632, Accepted : 440 Given a number sequence which has N element(s), please calculate

HOJ 2275 Number sequence(树状数组)

题意:给定一个n个元素的数列,令Ai, Aj, Ak,使得 Ai < Aj > Ak 且 i < j < k这样的三个数为一组.求出一共有多少组. 思路:可以用树状数组,每次输入一个Ai,可以查询到之前输入的比它小或比它大的有多少组,之后输入的就不得而知了,所以可以开个数组记录下来逆序再建树一次即可 另外数的范围取到了0,所以每个数要自加一次,而且组数是longlong的,而且HOJ的服务器系统支持的是lld,不是i64d..wa了几次 #include<cstdio>

hoj 1867 经理的烦恼 树状数组

链接:http://acm.hit.edu.cn/hoj/problem/view?id=1867 谁说是入门题啊,真想拍他一巴掌 经理的烦恼 My Tags   (Edit)   Source : HCPC 2005 Spring   Time limit : 2 sec   Memory limit : 32 M Submitted : 2578, Accepted : 606 Jerry是一家公司销售部门的经理.这家公司有很多连锁店,编号为1,2,3,... Jerry每天必须关注每家连锁

HOJ 1867 经理的烦恼 【 树状数组 】

题意:给出一个区间,求这个区间里面素数的个数 这道题wa了好多次---是因为add操作没有写对 每次更新的时候,应该先判断没有加上y是不是质数,加上了y是不是质数 如果从质数变成不是质数,那么add(x,-1) 如果从不是质数变成是质数,那么add(x,1) 另外还pe了,,printf("\n")就不对,puts("")就对了 ---不懂-------- 1 #include<iostream> 2 #include<cstdio> 3 #

树状数组(二)

题目链接:HOJ 2275 题意分析:给你一个大小为50000的数组a,要求在1秒内求出数组中满足{ i < j < k , ai < aj > ak }的组合数.(0 <= ai <= 32768) 解题思路:虽然数组很大,但是数组里的数很小啊,所以桶排一下,然后树状数组求和就行了: 首先我们已经在HDU 1541这题中学会了怎么求在ai前面比ai小的数的量了,那么这题就是求在ai前面比ai小的数的量加上在ai后面比ai小的数的量,最后求和一下就是答案啦~ 从头开始计

HOJ1867 经理的烦恼【树状数组】

题目链接: http://acm.hit.edu.cn/hoj/problem/view?id=1867 题目大意: 有C家连锁店,编号1~C,有N条指令,每家店初始的商品数目都是M.接下来N行是命令. 命令0:0 x w,连锁店x的商品数量变化为w,w > 0商品数量增加,w < 0商品数量减少. 命令1:1 x y,询问编号区间为[x,y]的连锁店商品为素数的商店有多少家. 思路: 因为区间比较大,所以用树状数组来做.用一个数组Shop[]来存放每家店的商品数目,Tree[] 表示树状数组

区间素数个数 树状数组 HIT 1867 经理的烦恼

http://acm.hit.edu.cn/hoj/problem/view?id=1867 经理的烦恼   Source : HCPC 2005 Spring   Time limit : 2 sec   Memory limit : 32 M Submitted : 2994, Accepted : 686 Jerry是一家公司销售部门的经理.这家公司有很多连锁店,编号为1,2,3,... Jerry每天必须关注每家连锁店的商品数量及其变化,一项很乏味的工作.在连锁店比较少的时候,Jerry

HDU 5542 The Battle of Chibi dp+树状数组

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5542 题意:给你n个数,求其中上升子序列长度为m的个数 可以考虑用dp[i][j]表示以a[i]结尾的长度为j的上升子序列有多少 裸的dp是o(n2m) 所以需要优化 我们可以发现dp的第3维是找比它小的数,那么就可以用树状数组来找 这样就可以降低复杂度 #include<iostream> #include<cstdio> #include<cstring> #include

(POJ 3067) Japan (慢慢熟悉的树状数组)

Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 29295   Accepted: 7902 Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. Japan is tall island with N cities on the East coas