poj3264,Balanced Lineup,线段树
来源:互联网 发布:魁北克大学知乎 编辑:程序博客网 时间:2024/05/22 16:37
简单的线段树
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define N 50100#define ls (p<<1)#define rs (p<<1|1)#define mid(p) (t[p].l+t[p].r>>1)int v[N];struct segmentTree{ int l,r,mi,ma;}t[N*4];void build(int l,int r,int p){ t[p].l=l;t[p].r=r; if (t[p].l==t[p].r){ t[p].mi=t[p].ma=v[l]; return; } int m=mid(p); build(l,m,ls); build(m+1,r,rs); t[p].mi=min(t[ls].mi,t[rs].mi); t[p].ma=max(t[ls].ma,t[rs].ma);}int query(int l,int r,int p,int func){ if (l==t[p].l&&r==t[p].r){ if (!func) return t[p].mi; else return t[p].ma; } int m=mid(p); if (r<=m) { return query(l,r,ls,func); } else if (l>m){ return query(l,r,rs,func); } else { int t1=query(l,m,ls,func); int t2=query(m+1,r,rs,func); if (!func) return min(t1,t2); else return max(t1,t2); }}int main(){ int i; int n,m,a,b,mi,ma; while(scanf("%d%d",&n,&m)!=EOF){ for(i=1;i<=n;++i){ scanf("%d",&v[i]); } build(1,n,1); for(i=1;i<=m;++i){ scanf("%d%d",&a,&b); mi=query(a,b,1,0); ma=query(a,b,1,1); printf("%d\n",ma-mi); } } return 0;}
0 0
- Balanced Lineup poj3264 线段树
- poj3264,Balanced Lineup,线段树
- poj3264 Balanced Lineup(线段树)
- poj3264 Balanced Lineup(线段树)
- POJ3264 Balanced Lineup(线段树)
- POJ3264 Balanced Lineup 【线段树】
- POJ3264 Balanced Lineup(线段树应用)
- POJ3264 Balanced Lineup 线段树基础
- Balanced Lineup(poj3264,线段树入门)
- POJ3264 Balanced Lineup 【线段树】+【单点更新】
- POJ3264 Balanced Lineup RMQ 线段树
- POJ3264 Balanced Lineup(线段树入门)
- POJ3264--Balanced Lineup(线段树模板题)
- POJ3264 Balanced Lineup 线段树|ST表
- 线段树之POJ3264 Balanced Lineup
- POJ3264 Balanced Lineup 线段树||RMQ
- 【POJ3264】Balanced Lineup,线段树入门
- POJ3264 Balanced Lineup(线段树静态)
- QQ营销的干货分享
- 一句话脚本系列之修改smb用户密码
- U盘制作mac安装盘
- iOS之UITableView的使用——自定义UITableViewCell
- jquery选择某一行某一列
- poj3264,Balanced Lineup,线段树
- window.onload
- 51中sprintf函数转换错误问题
- 以独占方式锁定配置文件失败
- [转]CTreeCtrl 控件使用总结
- Linux内核中的Kconfig、Makefile、.config
- 嵌入式Web Service gSOAP的移植与应用
- UVa 10110 -- Light, more light
- H3C交换机通用配置方法