51Nod 1174 区间中最大的数<线段树>
来源:互联网 发布:快走丝hl编程忘了 编辑:程序博客网 时间:2024/05/21 00:45
题目链接
线段树基本操作(单点更新,区间极值,区间求和)
线段树 区间更新
#include<iostream>#include<cstdio>#include<cstring>#include<map>#include<algorithm>#include<cmath>#include<vector>using namespace std;int a[10002*4];int t[10002*4];const int INF=1<<29;int build(int node,int begin,int end){if(begin==end) t[node]=a[begin];else{int fz=(begin+end)/2;build(2*node,begin,fz);build(2*node+1,fz+1,end);t[node]=max(t[node*2],t[node*2+1]);}}int findmax(int node,int begin,int end,int z,int y){if(begin>=z&&end<=y){return t[node];}int ans=-INF,fz=(begin+end)/2;if(z<=fz) ans=max(ans,findmax(2*node,begin,fz,z,y));if(y>fz) ans=max(ans,findmax(2*node+1,fz+1,end,z,y));return ans;}int main(){int n;cin>>n;for(int i=1;i<=n;i++) {scanf("%d",&a[i]);}build(1,1,n);int m;cin>>m;for(int i=0;i<m;i++){int a,b;scanf("%d%d",&a,&b);a++,b++;cout<<findmax(1,1,n,a,b)<<endl;}return 0;}
阅读全文
1 0
- 51nod 1174 区间中最大的数【线段树】
- 51nod 1174 区间中最大的数(线段树)
- 51Nod 1174 区间中最大的数 线段树
- 51Nod 1174 区间中最大的数<线段树>
- 51nod 1174 区间中最大的数 (线段树+RMQ)
- 51nod 1174 区间中最大的数(线段树)
- 51nod 1174区间中最大的数(线段树)
- 51nod 1174 区间中最大的数
- 51nod--1174 区间中最大的数 (RMQ)
- 【51Nod】1174 - 区间中最大的数(RMQ)
- 51nod 1174 区间中最大的数
- 51nod:1174 区间中最大的数(RMQ)
- 【51Nod】1174 区间中最大的数
- 51Nod 1174区间中最大的数
- 51Nod-1174-区间中最大的数
- 51Nod-1174-区间中最大的数
- 51Nod-1174 区间中最大的数(RMQ)
- 51Nod 1174:区间中最大的数
- maven打包生成可执行jar文件
- Batch Normalization
- git 本地项目上传
- 落单的数
- 【JZOJ 5405】【NOIP2017提高A组模拟10.10】Permutation
- 51Nod 1174 区间中最大的数<线段树>
- IntelliJ IDEA 常用快捷键
- linux系统下的Buffer
- CTabCtrl控件从零开始自绘
- hdu 5943 二分图匹配
- NSData 转 bytes
- 拓扑排序-bfs-广度优先搜索
- Windows命令行command的Shell命令详细解析和语法
- [agc011c]Squared Graph