成链的时候 是最坏情况 O(n^2)的复杂度呢!

按照输入的数据 一个一个的插入建树 然后维护左右儿子的个数

 (我们规定, 左儿子 小于  父亲  右儿子大于父亲)

往左走 说明存在逆序对 逆序对的个数就是父亲+父亲右儿子的节点数

long long qans;

struct nobe {
nobe *lson;
nobe *rson;
int lsz;
int rsz;
int val;
nobe () {
lson = rson = NULL;
lsz = rsz = val = ;
}
}*head; inline void pshup(nobe *rt)
{
rt->lsz = rt->rsz = ;
if (rt->lson) rt->lsz = + rt->lson->rsz + rt->lson->lsz;
if (rt->rson) rt->rsz = + rt->rson->rsz + rt->rson->lsz;
} void add(nobe *rt, int val)
{
if (val < rt->val) {
qans += rt->rsz + (long long);
if (rt->lson) {
add(rt->lson, val);
} else {
rt->lson = new nobe;
rt->lsz++;
rt->lson->val = val;
}
} else {
if (rt->rson) {
add(rt->rson, val);
} else {
rt->rson = new nobe;
rt->rsz++;
rt->rson->val = val;
}
}
pshup(rt);
}

最新文章

  1. mysql数据库去重复
  2. Smooth Mouse
  3. 使用sublime遇到的问题汇总
  4. H5常用代码:适配方案2
  5. android gps定位LocationManager
  6. AJAX联想查询的例子
  7. shell 常用正则
  8. Loadrunner请求自定义的http(json)文件and参数化
  9. ASP.NET中使用 Response.Write(&quot;&lt;script&gt;alert(&#39;****&#39;);&lt;/script&gt;&quot;);后CSS界面发生变化的解决方法 (经验证)
  10. PHP javascript 值互相引用(不用刷新页面)
  11. Codeforces Round #Pi (Div. 2)
  12. head直接复制的
  13. MyBatis打印SQL执行时间
  14. per-CPU变量
  15. 制作STM32开发板要买的电子元器件
  16. day05列表 类型
  17. python第三十课--异常(raise关键字)
  18. opestack keystone 深入
  19. MyCat入门指南
  20. Sql 中取小数点后面两位小数

热门文章

  1. 数组Array.sort()排序的方法
  2. Google Protocol Buffers 反序列化 转
  3. react router @4 和 vue路由 详解(一)vue路由基础和使用
  4. Win10系列:VC++ Direct3D模板介绍3
  5. java倒计时使用java.util.Timer实现,使用两个线程,以秒为单位
  6. hdu3518
  7. caffe模型参数解释
  8. mysql 数据迁移
  9. Valgrind,内存调试工具
  10. 二叉排序树,Binary_Sort_Tree,C++完整实现