遍历线段树
来源:互联网 发布:管理网络的网址 编辑:程序博客网 时间:2024/05/17 03:19
struct Node
{
int l;
int r;
int num;
} aNode[4*N];
int data[N];
int query(int l,int r,int n)//为询问以n为根节点的,从l到r的一段区间的num值
{
int mid=(aNode[n].l+aNode[n].r)>>1;//其中mid为全树的中点
if((aNode[n].l==l)&&(aNode[n].r==r))//如果要询问的区间l到r恰好为全树,则返回根节点的num值
return aNode[n].num;
else
{
if(r<=mid)//所询问的区间没有跨过两段区间,且在左边
return (query(l,r,2*n));
else if(l>mid)//所询问的区间没有跨过两段区间,且在右边
return query(l,r,2*n+1);
else//所询问的区间已经跨过两段区间,根据题意要求,返回符合要求两段区间的和。
//所以,此函数中的所有return语句是根据实际需要而得出的
return (query(l,mid,2*n)+query(mid+1,r,2*n+1));
}
}
*******************************************************************************************
注意函数中的return语句,不同的题不同!
*******************************************************************************************
{
int l;
int r;
int num;
} aNode[4*N];
int data[N];
int query(int l,int r,int n)//为询问以n为根节点的,从l到r的一段区间的num值
{
int mid=(aNode[n].l+aNode[n].r)>>1;//其中mid为全树的中点
if((aNode[n].l==l)&&(aNode[n].r==r))//如果要询问的区间l到r恰好为全树,则返回根节点的num值
return aNode[n].num;
else
{
if(r<=mid)//所询问的区间没有跨过两段区间,且在左边
return (query(l,r,2*n));
else if(l>mid)//所询问的区间没有跨过两段区间,且在右边
return query(l,r,2*n+1);
else//所询问的区间已经跨过两段区间,根据题意要求,返回符合要求两段区间的和。
//所以,此函数中的所有return语句是根据实际需要而得出的
return (query(l,mid,2*n)+query(mid+1,r,2*n+1));
}
}
*******************************************************************************************
注意函数中的return语句,不同的题不同!
*******************************************************************************************
- 遍历线段树
- ZOJ 3686 后序遍历线段树
- poj 2828 but tickets(线段树+逆序遍历)
- poj 2828POJ2828 Buy Tickets【线段树,逆序遍历】
- 线段树?线段树!
- 线段树?线段树!
- 线段_线段树
- 线段_线段树
- 2014多校7(1008)hdu4942(树的中序遍历+线段树)
- ZOJ3686____ZOJ 2013年3月月赛第一题(先序遍历+线段树)
- POJ 2828——Buy Tickets(树状数组,线段树——逆序遍历)
- 线段树 查询删除 后序遍历 POJ2182 Lost Cows解题报告
- 【原创】一维线段树的建树、插入、遍历和删除
- POJ 2828 Buy Tickets【线段树单点更新+逆序遍历】【经典题】【模板题】
- 线段树
- 线段树
- 线段树
- 线段树
- 水晶报表创建新连接时没有可用的系统
- 嗨翻校园改版的一些思考
- UINavigationBar详解(隐藏)
- 第七天:JFace对话框真的很好用
- 【Oracle问题集2】ORA-01113: file 7 needs media recovery
- 遍历线段树
- 命令模式(Command Pattern)(二):HeadFirst中的遥控器
- UVA 11729 - Commando War
- 压力很大!
- 树状数组学习笔记
- JAVA设计模式-Command
- Js与java的互相调用
- JAVA设计模式-Observer
- 五个常用的Linux监控脚本代码