【xsy1504】 pitcure 树状数组


数据范围:$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 树状数组的更多相关文章
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2221 Solved: 1179[Submit][Sta ...
- bzoj1878--离线+树状数组
这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...
- codeforces 597C C. Subsequences(dp+树状数组)
题目链接: C. Subsequences time limit per test 1 second memory limit per test 256 megabytes input standar ...
- BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 2545 Solved: 1419[Submit][Sta ...
- BZOJ 3529: [Sdoi2014]数表 [莫比乌斯反演 树状数组]
3529: [Sdoi2014]数表 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1399 Solved: 694[Submit][Status] ...
- BZOJ 3289: Mato的文件管理[莫队算法 树状数组]
3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 2399 Solved: 988[Submit][Status][Di ...
- 【Codeforces163E】e-Government AC自动机fail树 + DFS序 + 树状数组
E. e-Government time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...
- 【BZOJ-3881】Divljak AC自动机fail树 + 树链剖分+ 树状数组 + DFS序
3881: [Coci2015]Divljak Time Limit: 20 Sec Memory Limit: 768 MBSubmit: 508 Solved: 158[Submit][Sta ...
- 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)
题目链接 题意: 有n个点的一棵树.其中树上有m条已知的链,每条链有一个权值.从中选出任意个不相交的链使得链的权值和最大. 思路: 树形DP.设dp[i]表示i的子树下的最优权值和,sum[i]表示不 ...
随机推荐
- 2018.07.03 BZOJ 1007: [HNOI2008]水平可见直线(简单计算几何)
1007: [HNOI2008]水平可见直线 Time Limit: 1 Sec Memory Limit: 162 MB Description 在xoy直角坐标平面上有n条直线L1,L2,-Ln, ...
- 2018.06.30 BZOJ 3932: [CQOI2015]任务查询系统(主席树)
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管理 ...
- 2018.08.22 NOIP模拟 shop(lower_bound+前缀和预处理)
Shop 有 n 种物品,第 i 种物品的价格为 vi,每天最多购买 xi 个. 有 m 天,第 i 天你有 wi 的钱,你会不停购买能买得起的最贵的物品.你需要求出你每天会购买多少个物品. [输入格 ...
- 2018.08.19 NOIP模拟 change(简单模拟)
Change 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 Alice 和 Bob 又聚在一起了!他们已经厌倦了取石子游戏,现在他们热衷于切题.于是,Alice 找到了一道题让 B ...
- DataGrid组件
<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx=& ...
- struts2从浅至深(四)下载文件
1.创建下载文件动作类 2.配置struts 3.提供一个下载链接 4.下载页面 为什么文件名是链接名 只是以链接名显示,但文件的本身是个图片秩序改掉后缀名就可以了
- PAT甲 1002. A+B for Polynomials (25) 2016-09-09 22:50 64人阅读 评论(0) 收藏
1002. A+B for Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue T ...
- linux信号量(转载)
本文转载自http://blog.csdn.net/qinxiongxu/article/details/7830537 信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只 ...
- Bad Day -- Daniel Powter
Bad Day Bad Day (坏天气) 来自 Daniel Powter -- 2005年MTV欧洲音乐奖提名最佳新人, 出自专辑 ...
- SSH登录警告(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)
在配置本机与docker容器实现ssh无密码访问时出现以下报错 # federico @ linux in ~ [18:35:52] C:127$ sudo ssh-copy-id -i .ssh/i ...