二叉树求逆序对(伪AC 23333)
2024-10-10 12:48:18
成链的时候 是最坏情况 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);
}
最新文章
- mysql数据库去重复
- Smooth Mouse
- 使用sublime遇到的问题汇总
- H5常用代码:适配方案2
- android gps定位LocationManager
- AJAX联想查询的例子
- shell 常用正则
- Loadrunner请求自定义的http(json)文件and参数化
- ASP.NET中使用 Response.Write(";<;script>;alert(&#39;****&#39;);<;/script>;";);后CSS界面发生变化的解决方法 (经验证)
- PHP javascript 值互相引用(不用刷新页面)
- Codeforces Round #Pi (Div. 2)
- head直接复制的
- MyBatis打印SQL执行时间
- per-CPU变量
- 制作STM32开发板要买的电子元器件
- day05列表 类型
- python第三十课--异常(raise关键字)
- opestack keystone 深入
- MyCat入门指南
- Sql 中取小数点后面两位小数
热门文章
- 数组Array.sort()排序的方法
- Google Protocol Buffers 反序列化 转
- react router @4 和 vue路由 详解(一)vue路由基础和使用
- Win10系列:VC++ Direct3D模板介绍3
- java倒计时使用java.util.Timer实现,使用两个线程,以秒为单位
- hdu3518
- caffe模型参数解释
- mysql 数据迁移
- Valgrind,内存调试工具
- 二叉排序树,Binary_Sort_Tree,C++完整实现