博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态逆序对[CQOI2011]
阅读量:4664 次
发布时间:2019-06-09

本文共 1018 字,大约阅读时间需要 3 分钟。

此题正解 树套树

&&CDQ也要会啦

首先按删除顺序,给每个点赋时间值,没删的赋inf

按时间从小到大排序,后删除的对先删除的莫得贡献,但是先删除的对后删除的有贡献

第二维 按pos值从小到大排序

维护两个东西

{posi<posj&&vali>valj}

{posi>posj&&vali<valj}

1747844-20190811212007162-100940291.png

然后 莫得了

#include
#define re return#define lowbit(x) (x&(-x))#define inc(i,l,r) for(int i=l;i<=r;++i)#define dec(i,l,r) for(int i=l;i>=r;--i)const int maxn=100005;using namespace std;template
inline void rd(T& x){ char c;bool f=0; while((c=getchar())<'0'||c>'9')if(c=='-')f=1; x=c^48; while((c=getchar())>='0'&&c<='9')x=x*10+(c^48); if(f)x=-x;}int n,m,c[maxn],pos[maxn],d[maxn];long long ans;struct node{ int timme,val,pos,ans; bool operator<(node a)const {re timme
>1; CDQ(l,mid),CDQ(mid+1,r); int q=r,tot=l; dec(i,mid,l) { while(q>mid&&num[q].pos>num[i].pos)add(num[q].val,1),--q; num[i].ans+=sum(num[i].val-1); } inc(i,q+1,r)add(num[i].val,-1); q=mid+1; inc(i,l,mid) { while(q<=r&&num[q].pos

转载于:https://www.cnblogs.com/lsyyy/p/11336775.html

你可能感兴趣的文章
JavaWeb---总结(十三)使用Session防止表单重复提交
查看>>
JSP介绍(2)--- 九大隐式对象
查看>>
[置顶] .net技术类面试、笔试题汇总3
查看>>
JAVA操作Hbase基础例子
查看>>
js表达式和语句趣味题讲解与技术分享
查看>>
【VC++技术杂谈006】截取电脑桌面并将其保存为bmp图片
查看>>
Java多线程编程(五)定时器Timer
查看>>
如何正确使用const(常量),define(宏)
查看>>
Linux系统目录权限chmod误操作权限修复方法
查看>>
wp7中如和从app.xaml.cs中直接导航到程序的某个页面
查看>>
Eclipse Jee Neon打开时报错 code=13的问题
查看>>
pymysql
查看>>
restframework之序列化
查看>>
配置网卡
查看>>
使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之二...
查看>>
利用URL重写隐藏复杂的URL
查看>>
支持二次开发的Zigbee模块(SNAP技术)
查看>>
Confluence 6 生产环境备份策略
查看>>
springmvc.xml配置
查看>>
C primer plus 学习随笔(1)
查看>>