zoukankan
html css js c++ java
之前一道求逆序的线段树模板
struct
node
{
int
l,r;
node
*
pl,
*
pr;
int
count;
}
mem[
200
];
int
mem_pos;
int
anti, n, ans[
200
], num[
200
];
node
*
root;
node
*
new_node()
{
node
*
pt
=
&
mem[mem_pos
++
];
memset(pt,
0
,
sizeof
(node));
return
pt;
}
node
*
make_tree(
int
il,
int
ir,
bool
flag)
{
node
*
root
=
new_node();
root
->
l
=
il;
root
->
r
=
ir;
if
(flag)
{
root
->
count
=
ir
-
il
+
1
;
}
if
(il
!=
ir)
{
int
mid
=
(il
+
ir)
/
2
;
root
->
pl
=
make_tree(il, mid,flag);
root
->
pr
=
make_tree(mid
+
1
, ir,flag);
}
return
root;
}
int
find(node
*
root,
int
num)
{
root
->
count
--
;
if
(root
->
l
==
root
->
r)
{
return
root
->
l;
}
if
(root
->
pl
->
count
>
num)
{
//
left
return
find(root
->
pl, num);
}
else
{
//
right
return
find(root
->
pr, num
-
root
->
pl
->
count);
}
}
void
update(node
*
root,
int
num)
{
root
->
count
++
;
if
(root
->
l
==
num
&&
root
->
r
==
num)
{
return
;
}
if
(root
->
pl
->
r
>=
num)
{
//
left
anti
+=
root
->
pr
->
count;
update(root
->
pl, num);
}
else
{
//
right
update(root
->
pr, num);
}
}
void
cal_P()
{
int
i,j;
for
(i
=
1
;i
<=
n;i
++
)
{
anti
=
0
;
update(root, num[i]);
ans[ num[i] ]
=
anti;
}
}
void
cal_I()
{
int
i,j;
for
(i
=
1
;i
<=
n;i
++
)
{
ans[ find(root, num[i]) ]
=
i;
}
}
查看全文
相关阅读:
Chrome插件开发,美化网页上的文件列表。chrome-extension,background
Chrome插件开发,美化网页上的文件列表。chrome-extension,content-scripts
ASP.NET MVC 常用扩展点:过滤器、模型绑定等
Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager
企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET
分享一个html+js+ashx+easyui+ado.net权限管理系统
ASP.NET MVC Filters 4种默认过滤器的使用【附示例】
ASP.NET MVC Controllers and Actions
玩转控件:Fucking ERP之流程图
玩转控件:对Dev的GridControl控件扩展
原文地址:https://www.cnblogs.com/SQL/p/912730.html
最新文章
Js 事件详解
Dom节点操作总结
JS Math&Date的方法 (下)
JS Math&Date的方法 (上)
JS 的基础概念
css3选择器
.Net开源微型ORM框架测评
.NET Core CLI 的性能诊断工具介绍
Consul
Docker 常用操作
热门文章
RabbitMQ 在.Net 中的使用
C# 使用 csc.exe 实现命令行生成
Ocelot网关在.Net Core 的使用
Sql Server 数据库扩展
Core WebAPI 入门
javascript实例教程使用canvas技术模仿echarts柱状图
纯js时钟特效详细代码分析实例教程
使用原生js实现选项卡功能实例教程
再接再厉,JSONViewer现已支持Firefox、Microsoft Edge、360浏览器,可能是最好用的JSON格式化工具
开发谷歌浏览器插件会上瘾,搞了一个JSONViewer,一个页面格式化多条JSON,提升工作效率
Copyright © 2011-2022 走看看