AC日记——Mato的文件管理 bzoj 3289
思路:
莫队求区间逆序对个数,树状数组维护;
代码:
#include <bits/stdc++.h>
using namespace std;
#define maxn 50005
int bel[maxn],blo;
struct QueryType {
int l,r,id;
bool operator<(const QueryType pos)const
{
if(bel[l]==bel[pos.l]) return r<pos.r;
return bel[l]<bel[pos.l];
}
};
struct QueryType qu[maxn];
int n,m,ai[maxn],bi[maxn],tree[maxn],size,now,ans[maxn];
inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
}
inline int lowbit(int x)
{
return x&(-x);
}
inline void add(int x,int di)
{
while(x<=n)
{
tree[x]+=di;
x+=lowbit(x);
}
}
inline int sum(int l,int r)
{
int res=;l--;
while(r) res+=tree[r],r-=lowbit(r);
while(l) res-=tree[l],l-=lowbit(l);
return res;
}
inline void updatar(int x,bool di)
{
x=ai[x];
if(di)
{
if(x<size) now+=sum(x+,size);
add(x,);
}
else
{
if(x<size) now-=sum(x+,size);
add(x,-);
}
}
inline void updatal(int x,bool di)
{
x=ai[x];
if(di)
{
if(x>) now+=sum(,x-);
add(x,);
}
else
{
if(x>) now-=sum(,x-);
add(x,-);
}
}
int main()
{
in(n),blo=sqrt(n);
for(int i=;i<=n;i++) in(ai[i]),bi[i]=ai[i],bel[i]=(i+)/blo;
sort(bi+,bi+n+),size=unique(bi+,bi+n+)-bi-;
for(int i=;i<=n;i++) ai[i]=lower_bound(bi+,bi+size+,ai[i])-bi;
in(m);
for(int i=;i<=m;i++) in(qu[i].l),in(qu[i].r),qu[i].id=i;
sort(qu+,qu+m+);int l=,r=;
for(int i=;i<=m;i++)
{
while(r<qu[i].r) updatar(++r,true);
while(r>qu[i].r) updatar(r--,false);
while(l>qu[i].l) updatal(--l,true);
while(l<qu[i].l) updatal(l++,false);
ans[qu[i].id]=now;
}
for(int i=;i<=m;i++) printf("%d\n",ans[i]);
return ;
}
AC日记——Mato的文件管理 bzoj 3289的更多相关文章
- AC日记——[HEOI2012]旅行问题 bzoj 2746
		
2746 思路: 建立ac自动机,然后把fail树抽出来: 然后在fail树上走lca(神奇): 代码: #include <cstdio> #include <vector> ...
 - AC日记——[HNOI2008]GT考试 bzoj 1009
		
1009 思路: KMP上走DP(矩阵加速): DP[i][j]表示当前在第i位,同是匹配到不吉利串的第j位的方案数: 代码: #include <bits/stdc++.h> using ...
 - AC日记——明明的烦恼 bzoj 1005
		
1005 思路: prufer编码+组合数: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 #de ...
 - AC日记——[Scoi2010]序列操作 bzoj 1858
		
1858 思路: 恶心: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 struct Tree ...
 - AC日记——[ZJOI2007]报表统计 bzoj 1058
		
1058 思路: 平衡树的题: 然而我的平衡树写一次炸一次QwQ: 而且各种tle: 所以stl水过: 代码: #include <set> #include <cstdio> ...
 - AC日记——[JSOI2007]建筑抢修 bzoj 1029
		
1029 思路: 贪心,而且,stl水过: 然而神特么输出que.size()就错! 代码: #include <queue> #include <cstdio> #inclu ...
 - AC日记——[JSOI2008]火星人prefix bzoj 1014
		
1014 思路: 平衡树+二分答案+hash: 好了懂了吧. 代码: #include <cstdio> #include <cstring> #include <ios ...
 - AC日记——[HAOI2007]覆盖问题 bzoj 1052
		
1052 思路: 二分答案: 二分可能的长度: 然后递归判断长度是否可行: 先求出刚好覆盖所有点的矩形: 可行的第一个正方形在矩形的一个角上: 枚举四个角上的正方形,然后删去点: 删去一个正方形后,递 ...
 - AC日记——[SCOI2008] 着色方案 bzoj 1079
		
1079 思路: dp: 我们如果dp方程为15维,每维记录颜色还有多少种: 不仅tle,mle,它还re: 所以,我们压缩一下dp方程: 方程有6维,第i维记录有多少种颜色还剩下i次: 最后还要记录 ...
 
随机推荐
- PC蓝牙通信C#代码实现
			
PC蓝牙通信C#代码实现 这篇文章主要为大家详细介绍了PC蓝牙通信C#代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了C#实现PC蓝牙通信代码,供大家参考,具体内容如下 ...
 - stout代码分析之八:cache类
			
stout中实现了LRU cache.cache的成员如下: public: typedef std::list<Key> list; typedef std::tr1::unordere ...
 - bzoj 1142 [POI2009]Tab 最小表示
			
[POI2009]Tab Time Limit: 40 Sec Memory Limit: 162 MBSubmit: 373 Solved: 167[Submit][Status][Discus ...
 - 线程阶段性总结——APM,ThreadPool,Task,TaskScheduler ,CancellationTokenSource
			
不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程.对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦 ...
 - Eclipse中安装Tomcat
			
1. 下载Tomcat并安装: http://tomcat.apache.org/download-60.cgi 2. 下载最新Eclipse的Tomacat插件: http://www.eclips ...
 - 从C语言项目谈编程
			
很多初学C语言的小伙伴,在学习之初并没有一个大概的概念,学习这门语言需要掌握多少知识点,怎么才算学的差不多? C语言的精髓点在哪? 学到多少东西才能够达到做项目的标准?学习的时候需要注意哪些细节点?疑 ...
 - python初步学习-python数据类型-列表(list)
			
列表 list 在 python 中具有非常强大的功能 定义 在python中,用方括号表示一个list:[] 在方括号里面,可以是 int,也可以是 str类型的数据,甚至也可以是Flase/Tru ...
 - js_参数的get传输,从一个页面到另外一个页面。
			
2017年10月31日,今天是万圣节,欢乐谷搞事情. 刚接触前端那会是分不清,前端和后台的,后台的数据如何传输到前端的. 现在用的还是Jquery的ajax请求后台数据到前端页面的,需要学习的地方还有 ...
 - 概率DP入门学习QAQ
			
emmmm博客很多都烂尾了...但是没空写..先写一下正在学的东西好了 概率DP这东西每次考到都不会..听题解也是一脸懵逼..所以决定学习一下这个东东..毕竟NOIP考过...比什么平衡树实在多了QA ...
 - Django【进阶】数据库查询性能相关
			
之前项目中没有考虑过数据库查询关于效率的问题,如果请求量大,数据庞大,不考虑性能的话肯定不行. tips:如图之前我们遇到过,当添加一张表时,作为原来表的外键,要给个默认值,现在我们写null ...