zoukankan
html css js c++ java
PKU3264线段树解法
#include
<
stdio.h
>
#include
<
string
.h
>
struct
node
{
node
*
pl,
*
pr;
int
left, right;
int
mxa, min;
}
mem[
100000
];
int
memCount;
int
n, q;
int
mxa, min;
node
*
newNode()
{
node
*
pt
=&
mem[memCount
++
];
pt
->
mxa
=-
1
, pt
->
min
=
1000001
;
return
pt;
}
node
*
buildTree(
int
l,
int
r)
{
node
*
root
=
newNode();
root
->
left
=
l;
root
->
right
=
r;
if
(r
-
l
>=
1
)
{
int
mid
=
(l
+
r)
/
2
;
root
->
pl
=
buildTree(l,mid);
root
->
pr
=
buildTree(mid
+
1
,r);
}
return
root;
}
void
update(node
*
root,
int
i,
int
a)
{
if
(root
->
left
==
i
&&
root
->
right
==
i)
{
root
->
mxa
=
a, root
->
min
=
a;
return
;
}
if
(root
->
min
>
a)
root
->
min
=
a;
if
(root
->
mxa
<
a)
root
->
mxa
=
a;
if
(root
->
pl
->
right
>=
i)
{
update(root
->
pl,i,a);
}
else
{
update(root
->
pr,i,a);
}
}
void
que(node
*
root,
int
i,
int
j)
{
if
(root
->
min
>
min
&&
root
->
mxa
<
mxa)
return
;
if
(root
->
left
==
i
&&
root
->
right
==
j)
{
if
(mxa
<
root
->
mxa)
mxa
=
root
->
mxa;
if
(min
>
root
->
min)
min
=
root
->
min;
return
;
}
if
(root
->
pl
->
right
>=
i)
{
if
(root
->
pl
->
right
>=
j)
que(root
->
pl, i, j);
else
{
int
mid
=
(root
->
left
+
root
->
right)
/
2
;
que(root
->
pl,i,mid);
que(root
->
pr,mid
+
1
,j);
}
}
else
{
que(root
->
pr,i,j);
}
}
int
main()
{
while
(scanf(
"
%d%d
"
,
&
n,
&
q)
==
2
)
{
memCount
=
0
;
node
*
root
=
buildTree(
1
, n);
int
i, a;
for
(i
=
0
;i
<
n;i
++
)
{
scanf(
"
%d
"
,
&
a);
update(root,i
+
1
,a);
}
int
x, y;
for
(i
=
0
;i
<
q;i
++
)
{
scanf(
"
%d%d
"
,
&
x,
&
y);
mxa
=-
1
, min
=
1000001
;
que(root,x, y);
printf(
"
%d\n
"
,mxa
-
min);
}
}
return
0
;
}
查看全文
相关阅读:
vs2005 水晶报表横向打印Bug
petshop4.0 详解之七(PetShop表示层设计)
petshop4.0 详解之八(PetShop表示层设计)
在VS2005中使用VSS2005
用DataFormatString格式化GridView
GridView的高级用法
水晶报表 打印时出现错误提示:出现通信错误。将停止打印
POJ1182 食物链[并查集]
并查集的基础知识
HDOJ1269 迷宫城堡[强连通分量]
原文地址:https://www.cnblogs.com/SQL/p/932354.html
最新文章
导入数据到你的SVN版本库
怎样开发一个 WordPress 插件
Java 中的Static Class(静态类)
Java Applet简介
WordPress字体设置方法详解
关于修改WordPress主题你需要知道的十件事
WordPress模板修改相关信息
【最佳实践】【Blend】Triggers、Actions 和 Behaviors
网络编程基础
【Marva Collins' Way】序
热门文章
【最佳实践】【Prism】使用mef的wpf/silverlight例子
【行业关注】2011中国移动全球开发者大会
C#中的DateTime:本周,本月,今年,本周
【行业关注】将提供标准化的技术平台
【设计模式】单件模式 c#与c++实现
生活、工作习惯
win7下开启web服务器
WCF初识
petshop4.0 详解之六(PetShop表示层设计)
petshop4 MSDTC 不可用解决
Copyright © 2011-2022 走看看