数据范围:$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. android触控,先了解MotionEvent(一)

    http://my.oschina.net/banxi/blog/56421 这是我个人的看法,要学好android触控,了解MotionEvent是必要,对所用的MotionEvent常用的API要 ...

  2. 2018.07.31cogs2964. 数列操作η(线段树)

    传送门 线段树基本操作. 给出一个排列b,有一个初始值都为0的数组a,维护区间加1,区间统计区间∑(ai/bi)" role="presentation" style=& ...

  3. 一个简单的Linux后门程序的实现

    该程序实质是一个简单的socket编程,在受害方上运行攻击代码(后门进程),通过socket打开一个预设端口,并监听,等待攻击方的链接.一旦攻击方通过网络链接工具试图链接该socket,那么后门进程立 ...

  4. MySQL终端下常用命令

    一:控制类命令 1.show variables like "%datadir%";显示注册在variables中(一个注册表key-value的格式存储数据)key能匹配%dat ...

  5. PHP中的mb_convert_encoding与iconv函数介绍

    php传输乱码 mb_convert_encoding这个函数是用来转换编码的.原来一直对程序编码这一概念不理解,不过现在好像有点开窍了. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比 ...

  6. 功率谱密度(PDS)的MATLAB分析

    功率谱密度(PSD),它定义了信号或者时间序列的功率如何随频率分布.这里功率可能是实际物理上的功率, 或者更经常便于表示抽象的信号被定义为信号数值的平方,也就是当信号的负载为1欧姆(ohm)时的实际功 ...

  7. mac windows蓝牙问题

    如果是win7.win8或win10三者的64位版本,可以下载驱动解决:http://file2.mydrivers.com/2014/notebook/apple_broadcom_bluetoot ...

  8. 简单的nginx模拟网站的负载均衡

    环境:nginx1.10.3 虚拟机环境:3台centos7虚拟机 将148机器作为转发服务器配置如下 监听80端口,在http里面配置如下 将edc.com分别转发到149和150的服务器上 本地主 ...

  9. C#-安全

    分为两种,代码访问安全,基于角色的安全性. 代码访问安全.是代码告诉.net框架,自己(代码)正确执行,需要的权限,.net框架手动分配代码可执行操作方面的权限,代码可列出调用自己需要的权限集合. 基 ...

  10. The First Android App----Starting Another Activity

    To respond to the button's on-click event, open the activity_main.xml layout file and add the androi ...