博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(线段树)Balanced Lineup --POJ --3264
阅读量:4960 次
发布时间:2019-06-12

本文共 1652 字,大约阅读时间需要 5 分钟。

链接:

对于POJ老是爆,我也是醉了, 链接等等再发吧!

 

只是简单的建树,每个节点上记录它的最大值和最小值,最后查询一下,就ok了

 

代码:

 
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 const int N = 50005; 8 using namespace std; 9 10 #define Lson r<<111 #define Rson r<<1|112 #define mid a[r].Mid()13 14 struct node15 {16 int L, R;17 int Max, Min;18 int Mid()19 {20 return (L+R)>>1;21 }22 int len()23 {24 return (R-L+1);25 };26 } a[N<<2];27 28 void BuildTree(int r, int L, int R)29 {30 a[r].L=L, a[r].R=R;31 32 if(L==R)33 {34 scanf("%d", &a[r].Min);35 a[r].Max = a[r].Min;36 return ;37 }38 39 BuildTree(Lson, L, mid);40 BuildTree(Rson, mid+1, R);41 42 a[r].Min = min(a[Lson].Min, a[Rson].Min);43 a[r].Max = max(a[Lson].Max, a[Rson].Max);44 }45 46 int QueryMax(int r, int L, int R)47 {48 if(a[r].L==L && a[r].R==R)49 return a[r].Max;50 51 if(R<=mid)52 return QueryMax(Lson, L, R);53 else if(L>mid)54 return QueryMax(Rson, L, R);55 else56 {57 return max(QueryMax(Lson, L, mid), QueryMax(Rson, mid+1, R));58 }59 }60 61 int QueryMin(int r, int L, int R)62 {63 if(a[r].L==L && a[r].R==R)64 return a[r].Min;65 66 if(R<=mid)67 return QueryMin(Lson, L, R);68 else if(L>mid)69 return QueryMin(Rson, L, R);70 else71 {72 return min(QueryMin(Lson, L, mid), QueryMin(Rson, mid+1, R));73 }74 }75 76 77 78 int main()79 {80 int n, m;81 while(scanf("%d%d", &n, &m)!=EOF)82 {83 84 BuildTree(1, 1, n);85 86 int L, R;87 88 while(m--)89 {90 scanf("%d%d", &L, &R);91 printf("%d\n", QueryMax(1, L, R)-QueryMin(1, L, R));92 }93 }94 95 return 0;96 }
 

 

 

转载于:https://www.cnblogs.com/YY56/p/4693134.html

你可能感兴趣的文章
入门GTD时间管理系统必读
查看>>
牛客(59)按之字形顺序打印二叉树
查看>>
JavaScript 图表库 xCharts
查看>>
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
vuex中的dispatch和commit
查看>>
mybatis实战教程二:多对一关联查询(一对多)
查看>>
NodeMCU文档中文翻译 3 构建固件
查看>>
前端学习☞jquery
查看>>
10分钟搞懂树状数组
查看>>
Spring Cloud与微服务构建:微服务简介
查看>>
HTTP缓存和CDN缓存
查看>>
HDU-1171 Big Event in HDU(生成函数/背包dp)
查看>>
Babel 是干什么的
查看>>
cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
查看>>
Mysql数据库乱码总结
查看>>
BZOJ.3160.万径人踪灭(FFT Manacher)
查看>>
CODE[VS] 1842 递归第一次
查看>>
20180418小测
查看>>
Spring Cloud是怎么运行的?
查看>>