数据范围:$n≤2\times 10^5$

以下是题解:

 #include<bits/stdc++.h>
#define L unsigned int
#define MOD 16777216
#define lowbit(x) ((x)&(-(x)))
#define M 200005
using namespace std; L b[M]={},a[M]={},n;
void add(L x,L k){for(L i=x;i<=n;i+=lowbit(i)) b[i]+=k;}
L query(L x){L k=; for(L i=x;i;i-=lowbit(i)) k+=b[i]; return k;} L solve1(){
static L r[M]={},j[M]={}; L res=;
memset(b,,sizeof(b));
for(L i=n;i;i--){
r[i]=query(n)-query(a[i]);
add(a[i],);
}
memset(b,,sizeof(b));
for(L i=;i<=n;i++){
j[i]=query(a[i]);
add(a[i],i);
}
memset(b,,sizeof(b));
for(L i=;i<=n;i++){
L l=query(a[i]),now=;
now+=1LL*l*(i-);
now-=1LL*l*(l-)/;
now-=j[i];
res+=1LL*now*r[i];
add(a[i],);
}
return res;
}
L solve2(){
static L r[M]={},j[M]={}; L res=;
memset(b,,sizeof(b));
for(L i=n;i;i--){
r[i]=query(n)-query(a[i]);
add(a[i],);
}
memset(b,,sizeof(b));
for(L i=;i<=n;i++){
j[i]=query(a[i]);
add(a[i],a[i]);
}
memset(b,,sizeof(b));
for(L i=;i<=n;i++){
L l=query(a[i]),now=;
now+=1LL*l*(a[i]-);
now-=1LL*l*(l-)/;
now-=j[i];
res+=1LL*now*r[i];
add(a[i],);
}
return res;
} L solve3(){
L res=; memset(b,,sizeof(b));
for(L i=n;i;i--){
L hh=query(n)-query(a[i]);
res+=(1LL*hh*(hh-)*(hh-)/);
add(a[i],);
}
return res;
}
L solve4(){
static L f[M]={};
for(L i=n;i;i--) f[i]=;
for(L x=;x<=;x++){
memset(b,,sizeof(b));
for(L i=n;i;i--){
L hh=query(n)-query(a[i]);
add(a[i],f[i]);
f[i]=hh;
}
}
L res=; for(L i=;i<=n;i++) res+=f[i];
return res;
} main(){
scanf("%u",&n);
for(L i=;i<=n;i++) scanf("%u",a+i);
L res1=solve1();//1x2x
L res2=solve2();//14xx
L res3=solve3();//1xxx
L res4=solve4();//
printf("%u\n",((res1+res2-res3+res4)%MOD+MOD)%MOD);
}

【xsy1504】 pitcure 树状数组的更多相关文章

  1. BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2221  Solved: 1179[Submit][Sta ...

  2. bzoj1878--离线+树状数组

    这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...

  3. codeforces 597C C. Subsequences(dp+树状数组)

    题目链接: C. Subsequences time limit per test 1 second memory limit per test 256 megabytes input standar ...

  4. BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]

    2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2545  Solved: 1419[Submit][Sta ...

  5. BZOJ 3529: [Sdoi2014]数表 [莫比乌斯反演 树状数组]

    3529: [Sdoi2014]数表 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1399  Solved: 694[Submit][Status] ...

  6. BZOJ 3289: Mato的文件管理[莫队算法 树状数组]

    3289: Mato的文件管理 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 2399  Solved: 988[Submit][Status][Di ...

  7. 【Codeforces163E】e-Government AC自动机fail树 + DFS序 + 树状数组

    E. e-Government time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...

  8. 【BZOJ-3881】Divljak AC自动机fail树 + 树链剖分+ 树状数组 + DFS序

    3881: [Coci2015]Divljak Time Limit: 20 Sec  Memory Limit: 768 MBSubmit: 508  Solved: 158[Submit][Sta ...

  9. 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)

    题目链接 题意: 有n个点的一棵树.其中树上有m条已知的链,每条链有一个权值.从中选出任意个不相交的链使得链的权值和最大. 思路: 树形DP.设dp[i]表示i的子树下的最优权值和,sum[i]表示不 ...

随机推荐

  1. centos6.8下redis的安装和配置

    centos6.8下redis的安装和配置 下载.安装 在redis官网可以获取到最新版本的redis 进入/usr/local/目录,执行如下命令 wget http://download.redi ...

  2. Devexpress VCL Build v2013 vol 13.2.4 发布

    不说了,自己看吧. What's New in 13.2.4 (VCL Product Line)   New Major Features in 13.2 What's New in VCL Pro ...

  3. 557. Reverse Words in a String III

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...

  4. 2018.09.11 bzoj47214721: [Noip2016]蚯蚓(单调队列)

    传送门 好题. 目测只会多带一个log2(n+m)" role="presentation" style="position: relative;"& ...

  5. Java_得到GET和POST请求URL和参数列表

    一. 获取URL: getRequestURL()(还有个getRequestURI(),只取后面部分) 二. 获取参数列表: 1.getQueryString() 只适用于GET,比如客户端发送ht ...

  6. 201709025工作日记--更新UI方法

    1.handler+Thread 和 runOnUIThread 和 handler.post 方法 区别: 从实现原理上,两者别无二致,runOnUiThread也是借助Handler实现的.  对 ...

  7. (并查集) Wireless Network --POJ --2236

    链接: http://poj.org/problem?id=2236 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#probl ...

  8. HDU1518 Square(DFS) 2016-07-24 15:08 49人阅读 评论(0) 收藏

    Square Problem Description Given a set of sticks of various lengths, is it possible to join them end ...

  9. Win & Mac 系统之间U盘传递的U盘文件格式选取问题

    Win & Mac 系统之间U盘传递的U盘文件格式选取问题 1. Win系统与Mac系统之间可以通过 exFat U盘文件系统传递 exFAT(Extended File Allocation ...

  10. Java-网络编程之-Internet地址

    在网络编程中,比较重要的部分,就是关于Internet地址的知识理解 连接到Internet的设备我们成为节点(node),而计算机节点我们称为主机(host),要记住每个node或者host,至少一 ...